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 01/11] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A7=A3=E7=BB=91?=
=?UTF-8?q?=E8=A1=A8=E7=9A=84=E6=97=B6=E5=80=99=E8=AF=BB=E6=95=B0=E9=97=AE?=
=?UTF-8?q?=E9=A2=98=EF=BC=8C=E6=8A=84=E8=A1=A8=E8=B7=AF=E7=BA=BF=E7=9A=84?=
=?UTF-8?q?=E6=8A=84=E8=A1=A8=E8=AE=B0=E5=BD=95=E5=8F=AF=E4=BB=A5=E6=9F=A5?=
=?UTF-8?q?=E7=9C=8B=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}`);
}
From 15393049996de97c590e5a13c3e66e27d16938ea Mon Sep 17 00:00:00 2001
From: qiaomu <3520484422@qq.com>
Date: Mon, 3 Nov 2025 16:26:30 +0800
Subject: [PATCH 02/11] =?UTF-8?q?=E5=88=9D=E6=AD=A5=E8=81=94=E8=B0=83?=
=?UTF-8?q?=E8=A3=85=E8=A1=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app.json | 6 +-
components/searchSelect/index.js | 76 +++-
components/searchSelect/index.wxml | 10 +
components/searchSelectWrapper/index.js | 6 +-
components/searchSelectWrapper/index.wxml | 9 +-
components/searchSelectWrapper/index.wxss | 11 +-
.../components/installMeter/index.js | 379 ++++++++++++++++++
.../components/installMeter/index.json | 12 +
.../components/installMeter/index.wxml | 181 +++++++++
.../components/installMeter/index.wxss | 15 +
.../components/operateButton/index.js | 27 ++
.../components/operateButton/index.json | 4 +
.../components/operateButton/index.wxml | 2 +
.../components/operateButton/index.wxss | 12 +
.../workBenchNew/components/recharge/index.js | 192 +++++++++
.../components/recharge/index.json | 11 +
.../components/recharge/index.wxml | 51 +++
.../components/recharge/index.wxss | 1 +
.../components/uninstallMeter/index.js | 173 ++++++++
.../components/uninstallMeter/index.json | 11 +
.../components/uninstallMeter/index.wxml | 75 ++++
.../components/uninstallMeter/index.wxss | 15 +
.../components/workBenchApprove/index.wxml | 9 +-
pages/workBenchNew/index.js | 15 +
pages/workBenchNew/index.json | 3 +-
pages/workBenchNew/index.wxml | 59 ++-
pages/workBenchNew/index.wxss | 2 +-
pages/workBenchTodoList/index.js | 66 +++
pages/workBenchTodoList/index.json | 13 +
pages/workBenchTodoList/index.wxml | 12 +
pages/workBenchTodoList/index.wxss | 1 +
project.private.config.json | 85 +---
service/meter.js | 27 ++
service/public.js | 20 +
utils/data.js | 4 +-
35 files changed, 1495 insertions(+), 100 deletions(-)
create mode 100644 pages/workBenchNew/components/installMeter/index.js
create mode 100644 pages/workBenchNew/components/installMeter/index.json
create mode 100644 pages/workBenchNew/components/installMeter/index.wxml
create mode 100644 pages/workBenchNew/components/installMeter/index.wxss
create mode 100644 pages/workBenchNew/components/operateButton/index.js
create mode 100644 pages/workBenchNew/components/operateButton/index.json
create mode 100644 pages/workBenchNew/components/operateButton/index.wxml
create mode 100644 pages/workBenchNew/components/operateButton/index.wxss
create mode 100644 pages/workBenchNew/components/recharge/index.js
create mode 100644 pages/workBenchNew/components/recharge/index.json
create mode 100644 pages/workBenchNew/components/recharge/index.wxml
create mode 100644 pages/workBenchNew/components/recharge/index.wxss
create mode 100644 pages/workBenchNew/components/uninstallMeter/index.js
create mode 100644 pages/workBenchNew/components/uninstallMeter/index.json
create mode 100644 pages/workBenchNew/components/uninstallMeter/index.wxml
create mode 100644 pages/workBenchNew/components/uninstallMeter/index.wxss
create mode 100644 pages/workBenchTodoList/index.js
create mode 100644 pages/workBenchTodoList/index.json
create mode 100644 pages/workBenchTodoList/index.wxml
create mode 100644 pages/workBenchTodoList/index.wxss
diff --git a/app.json b/app.json
index eb05e51..3d9a873 100644
--- a/app.json
+++ b/app.json
@@ -42,7 +42,11 @@
"pages/workBenchNew/components/workBenchTenement/index",
"pages/workBenchNew/components/workBenchApprove/index",
"pages/workBenchNew/components/workBenchWxUser/index",
- "pages/workBenchNew/components/workBenchReading/index"
+ "pages/workBenchNew/components/workBenchReading/index",
+ "pages/workBenchNew/components/recharge/index",
+ "pages/workBenchNew/components/installMeter/index",
+ "pages/workBenchNew/components/uninstallMeter/index",
+ "pages/workBenchTodoList/index"
],
"subPackages": [
{
diff --git a/components/searchSelect/index.js b/components/searchSelect/index.js
index b17ab7f..65f64df 100644
--- a/components/searchSelect/index.js
+++ b/components/searchSelect/index.js
@@ -1,8 +1,8 @@
import { getLoginParkList, getParkBuildingList } from "../../service/park"
-import { getParkSimpleMeterList } from "../../service/meter"
+import { getParkSimpleMeterList, getParkBoxList, getCardList, getCollectionList, getInventoryMeter } from "../../service/meter"
import { alertInfo } from "../../utils/index";
import request from "../../utils/request"
-import { payWays, feeType } from "../../utils/data";
+import { payWays, feeType, meterType } from "../../utils/data";
import { getTenementList, getWxTenementList } from "../../service/tenement";
const { OK } = request;
@@ -35,6 +35,7 @@ Component({
searchText: "",
payWays,
feeType,
+ meterType
},
lifetimes: {
attached() {
@@ -96,6 +97,17 @@ Component({
})
this.triggerEvent("confirm", { data: item, way: index, type } );
},
+ onMeterTypeConfirm(event) {
+ const { index } = event.detail;
+ const { meterType = [], type } = this.data;
+ const item = meterType[index];
+ this.setData({
+ columns: [],
+ list: [],
+ searchText: ""
+ })
+ this.triggerEvent("confirm", { data: item, way: index, type } );
+ },
onSearch() {
const { type, bind, filterBind } = this.data;
switch(type) {
@@ -105,12 +117,24 @@ Component({
case "meter":
this.onSearchMeter();
return
+ case "inventoryMeter":
+ this.onSearchInventoryMeter();
+ return
case "tenement":
this.onSearchTenement();
return;
case "building":
this.onSearchBuilding();
return;
+ case "meterBox":
+ this.onSearchMeterBox();
+ return;
+ case "card":
+ this.onSearchCard();
+ return;
+ case "collection":
+ this.onSearchCollection();
+ return;
}
},
async onSearchPark() {
@@ -125,6 +149,18 @@ Component({
list: parks,
})
},
+ async onSearchCollection() {
+ const { searchText = "" } = this.data;
+ const { code, message, data: parks = [] } = await getCollectionList({keyword: searchText, page: 1});
+ if (code !== OK) {
+ alertInfo(message)
+ return
+ }
+ this.setData({
+ columns: parks?.map(item => item?.name),
+ list: parks,
+ })
+ },
async onSearchMeter() {
const { searchText = "", park, filterBind } = this.data;
const { code, message, data: parks = [] } = await getParkSimpleMeterList({keyword: searchText, park, isNeedBind: !filterBind});
@@ -137,6 +173,18 @@ Component({
list: parks || [],
})
},
+ async onSearchInventoryMeter() {
+ const { searchText = "", park, filterBind } = this.data;
+ const { code, message, data: parks = [] } = await getInventoryMeter({keyword: searchText, park, isNeedBind: !filterBind});
+ if (code !== OK) {
+ alertInfo(message)
+ return
+ }
+ this.setData({
+ columns: parks?.map(item => `${item.sn}`) || [],
+ list: parks || [],
+ })
+ },
async onSearchTenement() {
const { searchText = "", park, isBack } = this.data;
const { code, message, data = [] } = isBack ? await getWxTenementList({keyword: searchText, park}) : await getTenementList({keyword: searchText, park});
@@ -161,6 +209,30 @@ Component({
list: data,
})
},
+ async onSearchMeterBox() {
+ const { park } = this.data;
+ const { code, message, data = [] } = await getParkBoxList({park});
+ if (code !== OK) {
+ alertInfo(message)
+ return
+ }
+ this.setData({
+ columns: data?.length ? data?.map(item => item?.address) : [],
+ list: data,
+ })
+ },
+ async onSearchCard() {
+ const { park } = this.data;
+ const { code, message, data = [] } = await getCardList({park});
+ if (code !== OK) {
+ alertInfo(message)
+ return
+ }
+ this.setData({
+ columns: data?.length ? data?.map(item => item?.sim_number) : [],
+ list: data,
+ })
+ }
}
})
diff --git a/components/searchSelect/index.wxml b/components/searchSelect/index.wxml
index 6f4c8bc..55957fe 100644
--- a/components/searchSelect/index.wxml
+++ b/components/searchSelect/index.wxml
@@ -26,6 +26,16 @@
bind:confirm="onFeeTypeConfirm"
/>
+
+
+
- {{ label }}
+ *{{ label }}
{{placeholder}}
{{text}}
@@ -32,4 +32,11 @@
custom-style="padding: 0;font-size: 30rpx;line-height: 32rpx;"
/>
+
+
+
+ {{ label }}
+
+
+
\ No newline at end of file
diff --git a/components/searchSelectWrapper/index.wxss b/components/searchSelectWrapper/index.wxss
index cd7bdc4..523629c 100644
--- a/components/searchSelectWrapper/index.wxss
+++ b/components/searchSelectWrapper/index.wxss
@@ -8,7 +8,7 @@
.content {
flex: 1;
- margin-left: 30rpx;
+ margin-left: 20rpx;
margin-right: 30rpx;
display: flex;
padding: 10rpx 20rpx;
@@ -19,7 +19,7 @@
.inputContent {
flex: 1;
- margin-left: 30rpx;
+ margin-left: 20rpx;
margin-right: 30rpx;
display: flex;
padding: 0 20rpx;
@@ -33,5 +33,10 @@
}
.label {
- width: 120rpx;
+ width: 130rpx;
+}
+
+.required {
+ color: rgb(209, 83, 25);
+ font-size: 30rpx;
}
\ No newline at end of file
diff --git a/pages/workBenchNew/components/installMeter/index.js b/pages/workBenchNew/components/installMeter/index.js
new file mode 100644
index 0000000..48fc9e5
--- /dev/null
+++ b/pages/workBenchNew/components/installMeter/index.js
@@ -0,0 +1,379 @@
+// pages/workBenchNew/components/createMeter/index.js
+import dayjs from "../../../../utils/dayjs"
+import { alertInfo, alertSuccess, loadingFunc } from "../../../../utils/index"
+import { uploadInstallMeter } from "../../../../service/public"
+import request from "../../../../utils/request"
+import { installMeter } from "../../../../service/meter"
+const { OK } = request
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ time: "",
+ area: "",
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow() {
+ this.setData({
+ time: dayjs().format("YYYY-MM-DD HH:mm:ss")
+ })
+ },
+ onParkFocus(e) {
+ this.setData({
+ show: true,
+ title: "园区",
+ type: 'park'
+ })
+ },
+ onMeterFocus(e) {
+ const { park } = this.data;
+ if (!park) {
+ alertInfo("请先选择园区")
+ return;
+ }
+ this.setData({
+ show: true,
+ title: "电表",
+ type: 'inventoryMeter'
+ })
+ },
+ onBuildingFocus() {
+ const { park } = this.data;
+ if (!park) {
+ alertInfo("请先选择园区")
+ return;
+ }
+ this.setData({
+ show: true,
+ title: "建筑",
+ type: 'building'
+ })
+ },
+ clearImage() {
+ this.setData({
+ url: ""
+ })
+ },
+ onMeterBoxFocus() {
+ const { park } = this.data;
+ if (!park) {
+ alertInfo("请先选择园区")
+ return;
+ }
+ this.setData({
+ show: true,
+ title: "电表箱",
+ type: 'meterBox'
+ })
+ },
+ onMeterTypeFocus() {
+ this.setData({
+ show: true,
+ title: "电表类型",
+ type: 'meterType'
+ })
+ },
+ onBindCard() {
+ const { park } = this.data;
+ if (!park) {
+ alertInfo("请先选择园区")
+ return;
+ }
+ this.setData({
+ show: true,
+ title: "卡",
+ type: 'card'
+ })
+ },
+ onBindCollectionA() {
+ const { park } = this.data;
+ if (!park) {
+ alertInfo("请先选择园区")
+ return;
+ }
+ this.setData({
+ show: true,
+ title: "采集器A",
+ type: 'collection',
+ collection: "A"
+ })
+ },
+ onBindCollectionB() {
+ const { park } = this.data;
+ if (!park) {
+ alertInfo("请先选择园区")
+ return;
+ }
+ this.setData({
+ show: true,
+ title: "采集器B",
+ type: 'collection',
+ collection: "B"
+ })
+ },
+ onBindCollectionC() {
+ const { park } = this.data;
+ if (!park) {
+ alertInfo("请先选择园区")
+ return;
+ }
+ this.setData({
+ show: true,
+ title: "采集器C",
+ type: 'collection',
+ collection: "C"
+ })
+ },
+ uploadImage() {
+ const that = this;
+ wx.chooseMedia({
+ count: 1,
+ mediaType: ['image'],
+ sourceType: ['album', 'camera'],
+ success: async function(res) {
+ console.log("res", res)
+ const path = res.tempFiles?.[0]?.tempFilePath.toLowerCase()
+ if (!/(\.jpg|\.png|\.jpeg)$/.test(path)) {
+ wx.showToast({
+ title: '请上传jpg、png或jpeg格式的图片',
+ icon: 'none',
+ });
+ return;
+ }
+ var tempFilePaths = path;
+ loadingFunc(async () => {
+ const { code, message, url } = await uploadInstallMeter(tempFilePaths)
+ if (code !== OK) {
+ alertError(message)
+ return
+ }
+ that.setData({
+ url: url
+ })
+ })
+ }
+ })
+ },
+ onConfirm(e) {
+ const { type, data = {} } = e.detail;
+ const {collection} = this.data;
+ switch(type) {
+ case "park":
+ this.setData({
+ park: data.id,
+ parkName: data.name,
+ })
+ break;
+ case "tenement":
+ this.setData({
+ tenement: data.id,
+ tenementName: data.name,
+ })
+ break;
+ case "inventoryMeter":
+ this.setData({
+ meter: data.id,
+ meterName: data?.sn,
+ })
+ break;
+ case "building":
+ this.setData({
+ building: data.id,
+ buildingName: data.name,
+ });
+ break;
+ case "meterBox":
+ this.setData({
+ meterBox: data.id,
+ meterBoxName: data.address,
+ });
+ break;
+ case "tenement":
+ this.setData({
+ tenement: data.id,
+ tenementName: data.name,
+ })
+ break;
+ case "meterType":
+ this.setData({
+ meterType: data.way,
+ meterTypeName: data,
+ });
+ break;
+ case "meter":
+ this.setData({
+ meter: data.id,
+ meterName: data.address,
+ });
+ break;
+ case "card":
+ this.setData({
+ card: data.id,
+ cardName: data.sim_number,
+ });
+ break;
+ case "collection":
+ let newData = {}
+ if (collection === "A") {
+ newData = {
+ collectionA: data.id,
+ collectionAName: data.name,
+ }
+ }
+ if (collection === "B") {
+ newData = {
+ collectionB: data.id,
+ collectionBName: data.name,
+ }
+ }
+ if (collection === "C") {
+ newData = {
+ collectionC: data.id,
+ collectionCName: data.name,
+ }
+ }
+ this.setData(newData);
+ break;
+ }
+ this.onCancel();
+ },
+ changeAddress(e) {
+ this.setData({
+ address: e.detail
+ })
+ },
+ changeArea(e) {
+ this.setData({
+ area: e.detail
+ })
+ },
+ changeOverall(e) {
+ this.setData({
+ overall: e.detail
+ })
+ },
+ changeSharp(e) {
+ this.setData({
+ sharp: e.detail
+ })
+ },
+ changePeak(e) {
+ this.setData({
+ sharp: e.detail
+ })
+ },
+ changeFlat(e) {
+ this.setData({
+ flat: e.detail
+ })
+ },
+ changeValley(e) {
+ this.setData({
+ valley: e.detail
+ })
+ },
+ changeRatio(e) {
+ this.setData({
+ ratio: e.detail,
+ })
+ },
+ onCancel() {
+ this.setData({
+ show: false,
+ title: "",
+ type: "",
+ })
+ },
+ onTenementFocus(e) {
+ const { park } = this.data;
+ const that = this;
+ if (!park) {
+ alertInfo("请先选择园区")
+ return;
+ }
+ this.setData({
+ show: true,
+ title: "商户",
+ type: 'tenement'
+ })
+ },
+ async handleSubmit() {
+ const {
+ park, meter, address, building, meterBox, meterType,
+ ratio, area, card, collectionA, collectionB, collectionC,
+ tenement, sharp, peak, flat, valley, overall, url
+ } = this.data;
+ if (!park || !meter || !address) {
+ alertInfo("请填写必填项后保存")
+ return;
+ }
+ console.log("data", this.data)
+ const { code, data, message } = await installMeter({
+ park, meter, address, building, meterBox, meterType,
+ ratio, area, card, collectionA, collectionB, collectionC,
+ tenement, sharp, peak, flat, valley, overall, url
+ })
+ if (code !== OK) {
+ alertInfo(message)
+ return;
+ }
+ alertSuccess("新增成功")
+ },
+ goback() {
+ wx.navigateBack()
+ },
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload() {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom() {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage() {
+
+ }
+})
\ No newline at end of file
diff --git a/pages/workBenchNew/components/installMeter/index.json b/pages/workBenchNew/components/installMeter/index.json
new file mode 100644
index 0000000..e28e099
--- /dev/null
+++ b/pages/workBenchNew/components/installMeter/index.json
@@ -0,0 +1,12 @@
+{
+ "usingComponents": {
+ "navigator": "/components/navigator/index",
+ "van-popup": "@vant/weapp/popup/index",
+ "search-select": "/components/searchSelect/index",
+ "van-field": "@vant/weapp/field/index",
+ "van-button": "@vant/weapp/button/index",
+ "van-image": "@vant/weapp/image/index",
+ "searchSelectWrapper": "/components/searchSelectWrapper/index"
+ },
+ "navigationStyle": "custom"
+}
\ No newline at end of file
diff --git a/pages/workBenchNew/components/installMeter/index.wxml b/pages/workBenchNew/components/installMeter/index.wxml
new file mode 100644
index 0000000..1390b99
--- /dev/null
+++ b/pages/workBenchNew/components/installMeter/index.wxml
@@ -0,0 +1,181 @@
+
+
+
+
+
+ {{time}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 上传
+
+ 清除
+
+
+
+
+
+
+
+ 提交
+ 返回
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/workBenchNew/components/installMeter/index.wxss b/pages/workBenchNew/components/installMeter/index.wxss
new file mode 100644
index 0000000..9af2e92
--- /dev/null
+++ b/pages/workBenchNew/components/installMeter/index.wxss
@@ -0,0 +1,15 @@
+/* pages/workBenchNew/components/createMeter/index.wxss */
+
+.operate {
+ display: flex;
+ padding-top: 24rpx;
+ padding-bottom: 36rpx;
+}
+
+.submit, .cancel {
+ flex: 1;
+}
+
+.submit {
+ margin-right: 30rpx;
+}
\ No newline at end of file
diff --git a/pages/workBenchNew/components/operateButton/index.js b/pages/workBenchNew/components/operateButton/index.js
new file mode 100644
index 0000000..8ad1d7e
--- /dev/null
+++ b/pages/workBenchNew/components/operateButton/index.js
@@ -0,0 +1,27 @@
+// pages/workBenchNew/components/operateButton/index.js
+Component({
+
+ /**
+ * 组件的属性列表
+ */
+ properties: {
+ text: String,
+ style: String,
+ },
+
+ /**
+ * 组件的初始数据
+ */
+ data: {
+
+ },
+
+ /**
+ * 组件的方法列表
+ */
+ methods: {
+ handleClick() {
+ this.triggerEvent("click")
+ }
+ }
+})
\ No newline at end of file
diff --git a/pages/workBenchNew/components/operateButton/index.json b/pages/workBenchNew/components/operateButton/index.json
new file mode 100644
index 0000000..e8cfaaf
--- /dev/null
+++ b/pages/workBenchNew/components/operateButton/index.json
@@ -0,0 +1,4 @@
+{
+ "component": true,
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/pages/workBenchNew/components/operateButton/index.wxml b/pages/workBenchNew/components/operateButton/index.wxml
new file mode 100644
index 0000000..e58adc9
--- /dev/null
+++ b/pages/workBenchNew/components/operateButton/index.wxml
@@ -0,0 +1,2 @@
+
+ {{ text }}
\ No newline at end of file
diff --git a/pages/workBenchNew/components/operateButton/index.wxss b/pages/workBenchNew/components/operateButton/index.wxss
new file mode 100644
index 0000000..9691159
--- /dev/null
+++ b/pages/workBenchNew/components/operateButton/index.wxss
@@ -0,0 +1,12 @@
+/* pages/workBenchNew/components/operateButton/index.wxss */
+
+.buttonWrapper {
+ height: 100rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ border: 1rpx solid #ccc;
+ border-radius: 10rpx;
+ margin-bottom: 24rpx;
+ margin-top: 24rpx;
+}
\ No newline at end of file
diff --git a/pages/workBenchNew/components/recharge/index.js b/pages/workBenchNew/components/recharge/index.js
new file mode 100644
index 0000000..6c39e8e
--- /dev/null
+++ b/pages/workBenchNew/components/recharge/index.js
@@ -0,0 +1,192 @@
+// pages/workBenchNew/components/recharge/index.js
+import { handleRecharge } from "../../../../service/recharge";
+import { alertInfo, alertSuccess, loadingFunc } from "../../../../utils/index";
+import request from '../../../../utils/request'
+const { OK } = request;
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+
+ },
+ onParkFocus() {
+ this.setData({
+ show: true,
+ title: "园区",
+ type: 'park'
+ })
+ },
+ onMeterFocus() {
+ const { park } = this.data;
+ if (!park) {
+ alertInfo("请先选择园区")
+ return;
+ }
+ this.setData({
+ show: true,
+ title: "电表",
+ type: 'meter'
+ })
+ },
+ onConfirm(e) {
+ const { data, type, way } = e.detail;
+ switch(type) {
+ case "park":
+ this.setData({
+ parkName: data.name,
+ park: data.id,
+ })
+ break;
+ case "meter":
+ this.setData({
+ meterName: `${data.meterNo}-${data.address}${data.tenement?.name ? '-' + data.tenement?.name : ''}`,
+ meter: data.id,
+ })
+ break;
+ case "pay":
+ this.setData({
+ payName: data,
+ way: way,
+ });
+ break;
+ }
+ this.onCancel();
+ },
+ onCancel() {
+ this.setData({
+ show: false,
+ title: "",
+ type: "",
+ })
+ },
+ onPayFocus() {
+ this.setData({
+ show: true,
+ title: "付款方式",
+ type: 'pay'
+ })
+ },
+ onChangeMoney(e) {
+ this.setData({ money: e.detail })
+ },
+ onChangeVoucherNo(e) {
+ this.setData({ voucherNo: e.detail })
+ },
+ handleClear() {
+ this.setData({
+ park: "",
+ parkName: "",
+ meter: "",
+ meterName: "",
+ way: "",
+ payName: "",
+ show: false,
+ title: "",
+ type: "",
+ money: null,
+ voucherNo: null
+ })
+ },
+ async handleSubmit() {
+ const that = this;
+ const { park, meter, money, way, voucherNo } = this.data;
+ if (!park) {
+ alertInfo("请选择园区");
+ return;
+ }
+ if (!meter) {
+ alertInfo("请选择电表")
+ return;
+ }
+ if (!money) {
+ alertInfo("请输入金额")
+ return
+ }
+ if (!way && way !== 0) {
+ alertInfo("请选择付款方式")
+ return
+ }
+ if (!voucherNo) {
+ alertInfo("请输入凭证号")
+ return
+ }
+ loadingFunc(async () => {
+ const { code, message } = await handleRecharge(park, {
+ amount: `${money || ''}`,
+ meter,
+ paymentType: way,
+ voucherNo,
+ type: 0
+ })
+ if (code !== OK) {
+ alertInfo(message)
+ return
+ }
+ alertSuccess("充值成功")
+ setTimeout(() => {
+ that.handleClear()
+ that.setData({
+
+ })
+ }, 500)
+ })
+
+ },
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload() {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom() {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage() {
+
+ }
+})
\ No newline at end of file
diff --git a/pages/workBenchNew/components/recharge/index.json b/pages/workBenchNew/components/recharge/index.json
new file mode 100644
index 0000000..4e12d5e
--- /dev/null
+++ b/pages/workBenchNew/components/recharge/index.json
@@ -0,0 +1,11 @@
+{
+ "usingComponents": {
+ "van-popup": "@vant/weapp/popup/index",
+ "search-select": "/components/searchSelect/index",
+ "van-field": "@vant/weapp/field/index",
+ "van-button": "@vant/weapp/button/index",
+ "searchSelectWrapper": "/components/searchSelectWrapper/index",
+ "navigator": "/components/navigator"
+ },
+ "navigationStyle": "custom"
+}
\ No newline at end of file
diff --git a/pages/workBenchNew/components/recharge/index.wxml b/pages/workBenchNew/components/recharge/index.wxml
new file mode 100644
index 0000000..868329b
--- /dev/null
+++ b/pages/workBenchNew/components/recharge/index.wxml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 确认
+ 清空
+
+
\ No newline at end of file
diff --git a/pages/workBenchNew/components/recharge/index.wxss b/pages/workBenchNew/components/recharge/index.wxss
new file mode 100644
index 0000000..b1ed3a3
--- /dev/null
+++ b/pages/workBenchNew/components/recharge/index.wxss
@@ -0,0 +1 @@
+/* pages/workBenchNew/components/recharge/index.wxss */
\ No newline at end of file
diff --git a/pages/workBenchNew/components/uninstallMeter/index.js b/pages/workBenchNew/components/uninstallMeter/index.js
new file mode 100644
index 0000000..0ae2e6a
--- /dev/null
+++ b/pages/workBenchNew/components/uninstallMeter/index.js
@@ -0,0 +1,173 @@
+// pages/workBenchNew/components/uninstallMeter/index.js
+import dayjs from "../../../../utils/dayjs"
+import { alertInfo, } from "../../../../utils/index"
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+
+ },
+ onParkFocus(e) {
+ this.setData({
+ show: true,
+ title: "园区",
+ type: 'park'
+ })
+ },
+ onMeterFocus(e) {
+ const { park } = this.data;
+ if (!park) {
+ alertInfo("请先选择园区")
+ return;
+ }
+ this.setData({
+ show: true,
+ title: "电表",
+ type: 'meter'
+ })
+ },
+ onConfirm(e) {
+ const { type, data = {} } = e.detail;
+ const {collection} = this.data;
+ switch(type) {
+ case "park":
+ this.setData({
+ park: data.id,
+ parkName: data.name,
+ })
+ break;
+ case "tenement":
+ this.setData({
+ tenement: data.id,
+ tenementName: data.name,
+ })
+ break;
+ case "building":
+ this.setData({
+ building: data.id,
+ buildingName: data.name,
+ });
+ break;
+ case "meterBox":
+ this.setData({
+ meterBox: data.id,
+ meterBoxName: data.address,
+ });
+ break;
+ case "meterType":
+ this.setData({
+ meterType: data.way,
+ meterTypeName: data,
+ });
+ break;
+ case "meter":
+ this.setData({
+ meter: data.id,
+ meterName: data.address,
+ });
+ break;
+ case "card":
+ this.setData({
+ card: data.id,
+ cardName: data.sim_number,
+ });
+ break;
+ case "collection":
+ let newData = {}
+ if (collection === "A") {
+ newData = {
+ collectionA: data.id,
+ collectionAName: data.name,
+ }
+ }
+ if (collection === "B") {
+ newData = {
+ collectionB: data.id,
+ collectionBName: data.name,
+ }
+ }
+ if (collection === "C") {
+ newData = {
+ collectionC: data.id,
+ collectionCName: data.name,
+ }
+ }
+ this.setData(newData);
+ break;
+ }
+ this.onCancel();
+ },
+ onCancel() {
+ this.setData({
+ show: false,
+ title: "",
+ type: "",
+ })
+ },
+ goback() {
+ wx.navigateBack()
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow() {
+ this.setData({
+ time: dayjs().format("YYYY-MM-DD HH:mm:ss")
+ })
+ },
+ changeReason(e) {
+ this.setData({
+ reason: e.detail,
+ })
+ },
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload() {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom() {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage() {
+
+ }
+})
\ No newline at end of file
diff --git a/pages/workBenchNew/components/uninstallMeter/index.json b/pages/workBenchNew/components/uninstallMeter/index.json
new file mode 100644
index 0000000..a676309
--- /dev/null
+++ b/pages/workBenchNew/components/uninstallMeter/index.json
@@ -0,0 +1,11 @@
+{
+ "usingComponents": {
+ "navigator": "/components/navigator/index",
+ "van-popup": "@vant/weapp/popup/index",
+ "search-select": "/components/searchSelect/index",
+ "van-field": "@vant/weapp/field/index",
+ "van-button": "@vant/weapp/button/index",
+ "searchSelectWrapper": "/components/searchSelectWrapper/index"
+ },
+ "navigationStyle": "custom"
+}
\ No newline at end of file
diff --git a/pages/workBenchNew/components/uninstallMeter/index.wxml b/pages/workBenchNew/components/uninstallMeter/index.wxml
new file mode 100644
index 0000000..8941895
--- /dev/null
+++ b/pages/workBenchNew/components/uninstallMeter/index.wxml
@@ -0,0 +1,75 @@
+
+
+
+
+
+ {{time}}
+
+
+
+
+
+
+ 上传
+
+
+
+ 提交
+ 返回
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/workBenchNew/components/uninstallMeter/index.wxss b/pages/workBenchNew/components/uninstallMeter/index.wxss
new file mode 100644
index 0000000..7d468e2
--- /dev/null
+++ b/pages/workBenchNew/components/uninstallMeter/index.wxss
@@ -0,0 +1,15 @@
+/* pages/workBenchNew/components/uninstallMeter/index.wxss */
+
+.operate {
+ display: flex;
+ padding-top: 24rpx;
+ padding-bottom: 36rpx;
+}
+
+.submit, .cancel {
+ flex: 1;
+}
+
+.submit {
+ margin-right: 30rpx;
+}
\ No newline at end of file
diff --git a/pages/workBenchNew/components/workBenchApprove/index.wxml b/pages/workBenchNew/components/workBenchApprove/index.wxml
index 1339053..66420fb 100644
--- a/pages/workBenchNew/components/workBenchApprove/index.wxml
+++ b/pages/workBenchNew/components/workBenchApprove/index.wxml
@@ -1,17 +1,14 @@
-
+
-
+
待审核
-
+
已审核
-
- 充值
-
diff --git a/pages/workBenchNew/index.js b/pages/workBenchNew/index.js
index a5333ab..12c5b47 100644
--- a/pages/workBenchNew/index.js
+++ b/pages/workBenchNew/index.js
@@ -61,6 +61,21 @@ Page({
url: '/pages/home/index',
})
},
+ jumpToRecharge() {
+ wx.navigateTo({
+ url: '/pages/workBenchNew/components/recharge/index',
+ })
+ },
+ jumpToInstallMeter() {
+ wx.navigateTo({
+ url: '/pages/workBenchNew/components/installMeter/index',
+ })
+ },
+ jumpToUninstallMeter() {
+ wx.navigateTo({
+ url: '/pages/workBenchNew/components/uninstallMeter/index',
+ })
+ },
/**
* 生命周期函数--监听页面初次渲染完成
*/
diff --git a/pages/workBenchNew/index.json b/pages/workBenchNew/index.json
index de4f579..abce341 100644
--- a/pages/workBenchNew/index.json
+++ b/pages/workBenchNew/index.json
@@ -3,7 +3,8 @@
"navigator": "/components/navigator/index",
"van-row": "@vant/weapp/row/index",
"van-col": "@vant/weapp/col/index",
- "van-button": "@vant/weapp/button/index"
+ "van-button": "@vant/weapp/button/index",
+ "operate-button": "./components/operateButton/index"
},
"navigationStyle": "custom"
}
\ No newline at end of file
diff --git a/pages/workBenchNew/index.wxml b/pages/workBenchNew/index.wxml
index 3bc02fb..8b8c62a 100644
--- a/pages/workBenchNew/index.wxml
+++ b/pages/workBenchNew/index.wxml
@@ -2,7 +2,7 @@
-
+
+
+ 通用操作
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 现场操作
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
回到首页
diff --git a/pages/workBenchNew/index.wxss b/pages/workBenchNew/index.wxss
index 421c238..c220f08 100644
--- a/pages/workBenchNew/index.wxss
+++ b/pages/workBenchNew/index.wxss
@@ -1,7 +1,7 @@
/* pages/workBench/index.wxss */
.wrapper {
- margin: 20rpx 0rpx;
+ margin:20rpx 0rpx;
}
.contentWrapper {
diff --git a/pages/workBenchTodoList/index.js b/pages/workBenchTodoList/index.js
new file mode 100644
index 0000000..4b9ffea
--- /dev/null
+++ b/pages/workBenchTodoList/index.js
@@ -0,0 +1,66 @@
+// pages/workBenchTodoList/index.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload() {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom() {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage() {
+
+ }
+})
\ No newline at end of file
diff --git a/pages/workBenchTodoList/index.json b/pages/workBenchTodoList/index.json
new file mode 100644
index 0000000..aff1cbd
--- /dev/null
+++ b/pages/workBenchTodoList/index.json
@@ -0,0 +1,13 @@
+{
+ "usingComponents": {
+ "navigator": "/components/navigator/index",
+ "van-popup": "@vant/weapp/popup/index",
+ "van-row": "@vant/weapp/row/index",
+ "van-col": "@vant/weapp/col/index",
+ "search-select": "/components/searchSelect/index",
+ "van-field": "@vant/weapp/field/index",
+ "van-button": "@vant/weapp/button/index",
+ "searchSelectWrapper": "/components/searchSelectWrapper/index"
+ },
+ "navigationStyle": "custom"
+}
\ No newline at end of file
diff --git a/pages/workBenchTodoList/index.wxml b/pages/workBenchTodoList/index.wxml
new file mode 100644
index 0000000..8603edb
--- /dev/null
+++ b/pages/workBenchTodoList/index.wxml
@@ -0,0 +1,12 @@
+
+
+
+
+
+ 1
+
+
+ 2
+
+
+
\ No newline at end of file
diff --git a/pages/workBenchTodoList/index.wxss b/pages/workBenchTodoList/index.wxss
new file mode 100644
index 0000000..f05fa3a
--- /dev/null
+++ b/pages/workBenchTodoList/index.wxss
@@ -0,0 +1 @@
+/* pages/workBenchTodoList/index.wxss */
\ No newline at end of file
diff --git a/project.private.config.json b/project.private.config.json
index 424d3b1..422eecd 100644
--- a/project.private.config.json
+++ b/project.private.config.json
@@ -24,22 +24,15 @@
"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",
+ "name": "pages/workBenchTodoList/index",
+ "pathName": "pages/workBenchTodoList/index",
"query": "",
"launchMode": "default",
"scene": null
},
{
- "name": "pages/workBenchNew/components/workBenchReading/index",
- "pathName": "pages/workBenchNew/components/workBenchReading/index",
+ "name": "pages/workBenchNew/components/uninstallMeter/index",
+ "pathName": "pages/workBenchNew/components/uninstallMeter/index",
"query": "",
"launchMode": "default",
"scene": null
@@ -50,76 +43,6 @@
"query": "",
"launchMode": "default",
"scene": null
- },
- {
- "name": "pages/writeReading/index",
- "pathName": "pages/writeReading/index",
- "query": "id=PR00118027286020097",
- "launchMode": "default",
- "scene": null
- },
- {
- "name": "pages/readingHistory/index",
- "pathName": "pages/readingHistory/index",
- "query": "",
- "launchMode": "default",
- "scene": null
- },
- {
- "name": "pages/workBench/index",
- "pathName": "pages/workBench/index",
- "query": "",
- "launchMode": "default",
- "scene": null
- },
- {
- "name": "pages/workBench/index",
- "pathName": "pages/workBench/index",
- "query": "",
- "launchMode": "default",
- "scene": null
- },
- {
- "name": "childPackage/pages/electricQuery/index",
- "pathName": "childPackage/pages/electricQuery/index",
- "query": "",
- "launchMode": "default",
- "scene": null
- },
- {
- "name": "pages/workBench/index",
- "pathName": "pages/workBench/index",
- "query": "",
- "launchMode": "default",
- "scene": null
- },
- {
- "name": "childPackage/pages/electricQuery/index",
- "pathName": "childPackage/pages/electricQuery/index",
- "query": "",
- "launchMode": "default",
- "scene": null
- },
- {
- "name": "pages/workBench/index",
- "pathName": "pages/workBench/index",
- "query": "",
- "launchMode": "default",
- "scene": null
- },
- {
- "name": "childPackage/pages/electricQuery/index",
- "pathName": "childPackage/pages/electricQuery/index",
- "query": "",
- "launchMode": "default",
- "scene": null
- },
- {
- "name": "childPackage/pages/electricQuery/index",
- "pathName": "childPackage/pages/electricQuery/index",
- "query": "",
- "launchMode": "default",
- "scene": null
}
]
}
diff --git a/service/meter.js b/service/meter.js
index eb864da..a610bcd 100644
--- a/service/meter.js
+++ b/service/meter.js
@@ -40,4 +40,31 @@ export const handleOperateMeterSwitch = async function({ ids = [], status }) {
// 绑定时获取电表的最新信息
export const getWorkMeterDetail = async function(code = '') {
return await GET(`/vx/getWorkMeterDetail?code=${code}`);
+}
+
+// 获取某一园区下的电表箱列表
+export const getParkBoxList = async function({park = "", keyword = "", page = 1}) {
+ return await GET(`/box/${park}?page=${page}&keyword=${replaceSpecialIcon(keyword)}`);
+}
+
+// 获取卡列表
+export const getCardList = async function({park = "", keyword = "", page = 1}) {
+ return await GET(`/equipment/getCardList?page=${page}&park=${park}&keyword=${replaceSpecialIcon(keyword)}`);
+}
+
+
+// 获取互感器列表
+export const getCollectionList = async function({park = "", keyword = "", page = 1}) {
+ return await GET(`/transformer/list/select?page=${page}&park=${park}&transformerId=${replaceSpecialIcon(keyword)}`);
+}
+
+
+// 获取库存电表列表
+export const getInventoryMeter = async function({park = "", keyword = "", page = 1}) {
+ return await GET(`/electricity/list?page=${page}&park=${park}&keyword=${replaceSpecialIcon(keyword)}`);
+}
+
+// 新装电表
+export const installMeter = async function(data) {
+ return await POST(`/wx/workBench/installMeter`, data);
}
\ No newline at end of file
diff --git a/service/public.js b/service/public.js
index 4b9d431..9a40ece 100644
--- a/service/public.js
+++ b/service/public.js
@@ -43,6 +43,26 @@ export const uploadOcrFile = (filePath) => {
})
}
+export const uploadInstallMeter = (filePath) => {
+ const { api } = getConfigByEnv();
+ return new Promise((resolve, reject) => {
+ wx.uploadFile({
+ filePath: filePath,
+ name: 'data',
+ url: `${api}/image/meter/reading`,
+ header: {
+ authorization: 'Bearer ' + wx.getStorageSync("token")
+ },
+ success: (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/utils/data.js b/utils/data.js
index 22c17b0..2156c41 100644
--- a/utils/data.js
+++ b/utils/data.js
@@ -9,4 +9,6 @@ export const getRechargeOperateWay = (num) => {
return payWays[num];
}
-export const feeType = ['华昌宝能收费', "物业代收1", "物业代收2", "物业代收线损"]
\ No newline at end of file
+export const feeType = ['华昌宝能收费', "物业代收1", "物业代收2", "物业代收线损"]
+
+export const meterType = ['商户电表', '园区电表', '公摊电表']
\ No newline at end of file
From 750f2d8d39360476170f057bfdf70d4d2c98191d Mon Sep 17 00:00:00 2001
From: qiaomu <3520484422@qq.com>
Date: Tue, 4 Nov 2025 15:24:33 +0800
Subject: [PATCH 03/11] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A3=85=E8=A1=A8?=
=?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=9A=84=E6=97=B6=E5=80=99=E6=8F=90=E7=A4=BA?=
=?UTF-8?q?=E9=97=AE=E9=A2=98=E5=92=8C=E4=BA=92=E6=84=9F=E5=99=A8=E6=98=BE?=
=?UTF-8?q?=E7=A4=BA=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
components/searchSelect/index.js | 3 ++-
components/searchSelectWrapper/index.wxml | 6 +++---
pages/workBenchNew/components/installMeter/index.js | 8 ++++----
3 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/components/searchSelect/index.js b/components/searchSelect/index.js
index 65f64df..c30dd46 100644
--- a/components/searchSelect/index.js
+++ b/components/searchSelect/index.js
@@ -156,8 +156,9 @@ Component({
alertInfo(message)
return
}
+ console.log("parks", parks)
this.setData({
- columns: parks?.map(item => item?.name),
+ columns: parks?.map(item => `${item.transformerId}-倍率:${item.ratio}-${item.manufacturer}`),
list: parks,
})
},
diff --git a/components/searchSelectWrapper/index.wxml b/components/searchSelectWrapper/index.wxml
index 94888c1..cfcece7 100644
--- a/components/searchSelectWrapper/index.wxml
+++ b/components/searchSelectWrapper/index.wxml
@@ -8,7 +8,7 @@
- {{ label }}
+ *{{ label }}
搜索
- {{ label }}
+ *{{ label }}
- {{ label }}
+ *{{ label }}
diff --git a/pages/workBenchNew/components/installMeter/index.js b/pages/workBenchNew/components/installMeter/index.js
index 48fc9e5..8118ae9 100644
--- a/pages/workBenchNew/components/installMeter/index.js
+++ b/pages/workBenchNew/components/installMeter/index.js
@@ -237,19 +237,19 @@ Page({
if (collection === "A") {
newData = {
collectionA: data.id,
- collectionAName: data.name,
+ collectionAName: `${item.transformerId}-倍率:${item.ratio}-${item.manufacturer}`,
}
}
if (collection === "B") {
newData = {
collectionB: data.id,
- collectionBName: data.name,
+ collectionBName: `${item.transformerId}-倍率:${item.ratio}-${item.manufacturer}`,
}
}
if (collection === "C") {
newData = {
collectionC: data.id,
- collectionCName: data.name,
+ collectionCName: `${item.transformerId}-倍率:${item.ratio}-${item.manufacturer}`,
}
}
this.setData(newData);
@@ -323,7 +323,7 @@ Page({
ratio, area, card, collectionA, collectionB, collectionC,
tenement, sharp, peak, flat, valley, overall, url
} = this.data;
- if (!park || !meter || !address) {
+ if (!park || !meter || !address || !meterType) {
alertInfo("请填写必填项后保存")
return;
}
From 5573c78b23f86fa4c3ef710aab65c60ef91c6468 Mon Sep 17 00:00:00 2001
From: qiaomu <3520484422@qq.com>
Date: Tue, 4 Nov 2025 16:00:47 +0800
Subject: [PATCH 04/11] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../components/installMeter/index.js | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/pages/workBenchNew/components/installMeter/index.js b/pages/workBenchNew/components/installMeter/index.js
index 8118ae9..f53ca81 100644
--- a/pages/workBenchNew/components/installMeter/index.js
+++ b/pages/workBenchNew/components/installMeter/index.js
@@ -176,13 +176,25 @@ Page({
},
onConfirm(e) {
const { type, data = {} } = e.detail;
- const {collection} = this.data;
+ const {collection, park, tenement} = this.data;
switch(type) {
case "park":
this.setData({
park: data.id,
parkName: data.name,
})
+ if (park !== data.id) {
+ this.setData({
+ tenement: null,
+ tenementName: null,
+ building: null,
+ buildingName: null,
+ meterBox: null,
+ meterBoxName: null,
+ meter: null,
+ meterName: null,
+ })
+ }
break;
case "tenement":
this.setData({
@@ -323,7 +335,7 @@ Page({
ratio, area, card, collectionA, collectionB, collectionC,
tenement, sharp, peak, flat, valley, overall, url
} = this.data;
- if (!park || !meter || !address || !meterType) {
+ if (!park || !meter || !address || meterType == null) {
alertInfo("请填写必填项后保存")
return;
}
From c5a8bdfd8120625f7680698ede3875f8695be123 Mon Sep 17 00:00:00 2001
From: qiaomu <3520484422@qq.com>
Date: Tue, 4 Nov 2025 17:14:04 +0800
Subject: [PATCH 05/11] =?UTF-8?q?=E6=96=B0=E8=A3=85=E7=94=B5=E8=A1=A8?=
=?UTF-8?q?=E5=8F=82=E6=95=B0=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
components/searchSelect/index.js | 4 +-
.../components/installMeter/index.js | 60 +++++++++++++++----
.../components/installMeter/index.wxml | 17 ++++--
3 files changed, 65 insertions(+), 16 deletions(-)
diff --git a/components/searchSelect/index.js b/components/searchSelect/index.js
index c30dd46..88d9507 100644
--- a/components/searchSelect/index.js
+++ b/components/searchSelect/index.js
@@ -62,6 +62,7 @@ Component({
},
onConfirm(event) {
const { index } = event.detail;
+ console.log("index", index)
const { list = [], type } = this.data;
const item = list[index];
if (!item) {
@@ -73,7 +74,7 @@ Component({
list: [],
searchText: ""
})
- this.triggerEvent("confirm", { data: item, type } );
+ this.triggerEvent("confirm", { data: item, type, index } );
},
onPayConfirm(event) {
const { index } = event.detail;
@@ -156,7 +157,6 @@ Component({
alertInfo(message)
return
}
- console.log("parks", parks)
this.setData({
columns: parks?.map(item => `${item.transformerId}-倍率:${item.ratio}-${item.manufacturer}`),
list: parks,
diff --git a/pages/workBenchNew/components/installMeter/index.js b/pages/workBenchNew/components/installMeter/index.js
index f53ca81..8fa9355 100644
--- a/pages/workBenchNew/components/installMeter/index.js
+++ b/pages/workBenchNew/components/installMeter/index.js
@@ -174,14 +174,21 @@ Page({
}
})
},
+ changeSn(e) {
+ this.setData({
+ sn: e.detail,
+ })
+ },
onConfirm(e) {
- const { type, data = {} } = e.detail;
+ console.log("e", e)
+ const { type, data = {}, way } = e.detail;
const {collection, park, tenement} = this.data;
switch(type) {
case "park":
this.setData({
park: data.id,
parkName: data.name,
+ selfManagement: data.selfManagement,
})
if (park !== data.id) {
this.setData({
@@ -193,6 +200,20 @@ Page({
meterBoxName: null,
meter: null,
meterName: null,
+ card: null,
+ cardName: null,
+ collectionA: null,
+ collectionAName: null,
+ collectionB: null,
+ collectionBName: null,
+ collectionB: null,
+ collectionBName: null,
+ address: null,
+ sharp: null,
+ peak: null,
+ flat: null,
+ valley: null,
+ area: null,
})
}
break;
@@ -228,7 +249,7 @@ Page({
break;
case "meterType":
this.setData({
- meterType: data.way,
+ meterType: way,
meterTypeName: data,
});
break;
@@ -249,19 +270,22 @@ Page({
if (collection === "A") {
newData = {
collectionA: data.id,
- collectionAName: `${item.transformerId}-倍率:${item.ratio}-${item.manufacturer}`,
+ collectionAName: `${data.transformerId}-倍率:${data.ratio}-${data.manufacturer}`,
+ collectionARatio: data.ratio,
}
}
if (collection === "B") {
newData = {
collectionB: data.id,
- collectionBName: `${item.transformerId}-倍率:${item.ratio}-${item.manufacturer}`,
+ collectionBName: `${data.transformerId}-倍率:${data.ratio}-${data.manufacturer}`,
+ collectionBRatio: data.ratio,
}
}
if (collection === "C") {
newData = {
collectionC: data.id,
- collectionCName: `${item.transformerId}-倍率:${item.ratio}-${item.manufacturer}`,
+ collectionCName: `${data.transformerId}-倍率:${data.ratio}-${data.manufacturer}`,
+ collectionCRatio: data.ratio,
}
}
this.setData(newData);
@@ -291,7 +315,7 @@ Page({
},
changePeak(e) {
this.setData({
- sharp: e.detail
+ peak: e.detail
})
},
changeFlat(e) {
@@ -333,17 +357,33 @@ Page({
const {
park, meter, address, building, meterBox, meterType,
ratio, area, card, collectionA, collectionB, collectionC,
- tenement, sharp, peak, flat, valley, overall, url
+ tenement, sharp, peak, flat, valley, overall, url, sn,
+ collectionARatio, collectionBRatio, collectionCRatio
} = this.data;
- if (!park || !meter || !address || meterType == null) {
+ if (!park || !(meter || sn) || !address || meterType == null) {
alertInfo("请填写必填项后保存")
return;
}
- console.log("data", this.data)
+ if (
+ (collectionA == collectionB && collectionA != null && collectionB != null) ||
+ (collectionA == collectionC&& collectionA != null && collectionC != null) ||
+ (collectionC == collectionB && collectionB != null && collectionC != null)
+ ) {
+ alertInfo("采集器不能重复选择")
+ return;
+ }
+ if (
+ (collectionARatio != collectionBRatio && collectionARatio != null && collectionBRatio != null) ||
+ (collectionARatio != collectionCRatio&& collectionARatio != null && collectionCRatio != null) ||
+ (collectionCRatio != collectionBRatio && collectionBRatio != null && collectionCRatio != null)
+ ) {
+ alertInfo("采集器倍率不一致")
+ return;
+ }
const { code, data, message } = await installMeter({
park, meter, address, building, meterBox, meterType,
ratio, area, card, collectionA, collectionB, collectionC,
- tenement, sharp, peak, flat, valley, overall, url
+ tenement, sharp, peak, flat, valley, overall, url, sn
})
if (code !== OK) {
alertInfo(message)
diff --git a/pages/workBenchNew/components/installMeter/index.wxml b/pages/workBenchNew/components/installMeter/index.wxml
index 1390b99..f01674a 100644
--- a/pages/workBenchNew/components/installMeter/index.wxml
+++ b/pages/workBenchNew/components/installMeter/index.wxml
@@ -25,8 +25,17 @@
text="{{meterName}}"
bind:search="onMeterFocus"
required="{{true}}"
+ wx:if="{{selfManagement === 0}}"
+/>
+
-
Date: Thu, 6 Nov 2025 16:15:34 +0800
Subject: [PATCH 06/11] =?UTF-8?q?=E5=88=9D=E6=AD=A5=E8=BF=9B=E8=A1=8C?=
=?UTF-8?q?=E6=96=B0=E8=A3=85=E8=B0=83=E8=AF=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app.json | 3 +-
components/searchSelect/index.js | 2 +-
.../components/installMeter/index.js | 12 +--
.../components/installMeter/index.wxml | 14 ++--
pages/workBenchNew/components/kaihu/index.js | 66 +++++++++++++++
.../workBenchNew/components/kaihu/index.json | 10 +++
.../workBenchNew/components/kaihu/index.wxml | 83 +++++++++++++++++++
.../workBenchNew/components/kaihu/index.wxss | 1 +
pages/workBenchNew/index.js | 5 ++
pages/workBenchNew/index.wxml | 2 +-
10 files changed, 183 insertions(+), 15 deletions(-)
create mode 100644 pages/workBenchNew/components/kaihu/index.js
create mode 100644 pages/workBenchNew/components/kaihu/index.json
create mode 100644 pages/workBenchNew/components/kaihu/index.wxml
create mode 100644 pages/workBenchNew/components/kaihu/index.wxss
diff --git a/app.json b/app.json
index 3d9a873..ffe9845 100644
--- a/app.json
+++ b/app.json
@@ -46,7 +46,8 @@
"pages/workBenchNew/components/recharge/index",
"pages/workBenchNew/components/installMeter/index",
"pages/workBenchNew/components/uninstallMeter/index",
- "pages/workBenchTodoList/index"
+ "pages/workBenchTodoList/index",
+ "pages/workBenchNew/components/kaihu/index"
],
"subPackages": [
{
diff --git a/components/searchSelect/index.js b/components/searchSelect/index.js
index 88d9507..3cadbc3 100644
--- a/components/searchSelect/index.js
+++ b/components/searchSelect/index.js
@@ -152,7 +152,7 @@ Component({
},
async onSearchCollection() {
const { searchText = "" } = this.data;
- const { code, message, data: parks = [] } = await getCollectionList({keyword: searchText, page: 1});
+ const { code, message, data: parks = [] } = await getCollectionList({keyword: searchText, page: 1, status: 1});
if (code !== OK) {
alertInfo(message)
return
diff --git a/pages/workBenchNew/components/installMeter/index.js b/pages/workBenchNew/components/installMeter/index.js
index 8fa9355..72b9ae9 100644
--- a/pages/workBenchNew/components/installMeter/index.js
+++ b/pages/workBenchNew/components/installMeter/index.js
@@ -113,7 +113,7 @@ Page({
}
this.setData({
show: true,
- title: "采集器A",
+ title: "互感器A",
type: 'collection',
collection: "A"
})
@@ -126,7 +126,7 @@ Page({
}
this.setData({
show: true,
- title: "采集器B",
+ title: "互感器B",
type: 'collection',
collection: "B"
})
@@ -139,7 +139,7 @@ Page({
}
this.setData({
show: true,
- title: "采集器C",
+ title: "互感器C",
type: 'collection',
collection: "C"
})
@@ -360,7 +360,7 @@ Page({
tenement, sharp, peak, flat, valley, overall, url, sn,
collectionARatio, collectionBRatio, collectionCRatio
} = this.data;
- if (!park || !(meter || sn) || !address || meterType == null) {
+ if (!park || !(meter || sn) || !address || meterType == null || !building || !meterBox) {
alertInfo("请填写必填项后保存")
return;
}
@@ -369,7 +369,7 @@ Page({
(collectionA == collectionC&& collectionA != null && collectionC != null) ||
(collectionC == collectionB && collectionB != null && collectionC != null)
) {
- alertInfo("采集器不能重复选择")
+ alertInfo("互感器不能重复选择")
return;
}
if (
@@ -377,7 +377,7 @@ Page({
(collectionARatio != collectionCRatio&& collectionARatio != null && collectionCRatio != null) ||
(collectionCRatio != collectionBRatio && collectionBRatio != null && collectionCRatio != null)
) {
- alertInfo("采集器倍率不一致")
+ alertInfo("互感器倍率不一致")
return;
}
const { code, data, message } = await installMeter({
diff --git a/pages/workBenchNew/components/installMeter/index.wxml b/pages/workBenchNew/components/installMeter/index.wxml
index f01674a..39fc91d 100644
--- a/pages/workBenchNew/components/installMeter/index.wxml
+++ b/pages/workBenchNew/components/installMeter/index.wxml
@@ -41,6 +41,7 @@
placeholder="请选择建筑"
text="{{buildingName}}"
bind:search="onBuildingFocus"
+ required="{{true}}"
/>
diff --git a/pages/workBenchNew/components/kaihu/index.js b/pages/workBenchNew/components/kaihu/index.js
new file mode 100644
index 0000000..6c01e64
--- /dev/null
+++ b/pages/workBenchNew/components/kaihu/index.js
@@ -0,0 +1,66 @@
+// pages/workBenchNew/components/kaihu/index.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload() {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom() {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage() {
+
+ }
+})
\ No newline at end of file
diff --git a/pages/workBenchNew/components/kaihu/index.json b/pages/workBenchNew/components/kaihu/index.json
new file mode 100644
index 0000000..b46458f
--- /dev/null
+++ b/pages/workBenchNew/components/kaihu/index.json
@@ -0,0 +1,10 @@
+{
+ "usingComponents": {
+ "search-select": "/components/searchSelect/index",
+ "van-field": "@vant/weapp/field/index",
+ "van-button": "@vant/weapp/button/index",
+ "navigator": "/components/navigator/index",
+ "van-dialog": "@vant/weapp/dialog/index"
+ },
+ "navigationStyle": "custom"
+}
\ No newline at end of file
diff --git a/pages/workBenchNew/components/kaihu/index.wxml b/pages/workBenchNew/components/kaihu/index.wxml
new file mode 100644
index 0000000..71f2ddd
--- /dev/null
+++ b/pages/workBenchNew/components/kaihu/index.wxml
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+
+ 选择
+
+
+
+
+ 选择
+
+
+
\ No newline at end of file
diff --git a/pages/workBenchNew/components/kaihu/index.wxss b/pages/workBenchNew/components/kaihu/index.wxss
new file mode 100644
index 0000000..a604f74
--- /dev/null
+++ b/pages/workBenchNew/components/kaihu/index.wxss
@@ -0,0 +1 @@
+/* pages/workBenchNew/components/kaihu/index.wxss */
\ No newline at end of file
diff --git a/pages/workBenchNew/index.js b/pages/workBenchNew/index.js
index 12c5b47..aa4fd6b 100644
--- a/pages/workBenchNew/index.js
+++ b/pages/workBenchNew/index.js
@@ -76,6 +76,11 @@ Page({
url: '/pages/workBenchNew/components/uninstallMeter/index',
})
},
+ jumpToKaihu() {
+ wx.navigateTo({
+ url: 'pages/workBenchNew/components/kaihu/index',
+ })
+ },
/**
* 生命周期函数--监听页面初次渲染完成
*/
diff --git a/pages/workBenchNew/index.wxml b/pages/workBenchNew/index.wxml
index 8b8c62a..e237b49 100644
--- a/pages/workBenchNew/index.wxml
+++ b/pages/workBenchNew/index.wxml
@@ -111,7 +111,7 @@
-
+
From 639f92540f1c88cba7f71883f5079269ef829821 Mon Sep 17 00:00:00 2001
From: qiaomu <3520484422@qq.com>
Date: Sun, 9 Nov 2025 17:33:32 +0800
Subject: [PATCH 07/11] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E5=8F=B0=E4=BB=A3?=
=?UTF-8?q?=E7=A0=81=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app.json | 4 +-
components/searchSelect/index.js | 44 ++-
components/searchSelect/index.wxml | 30 ++
components/searchSelectWrapper/index.wxml | 1 +
components/searchSelectWrapper/index.wxss | 5 +-
pages/workBenchNew/components/kaihu/index.js | 85 +++++-
.../workBenchNew/components/kaihu/index.wxml | 30 +-
.../components/uninstallMeter/index.js | 61 +++-
.../components/uninstallMeter/index.wxml | 12 +-
.../components/workBenchMeterControl/index.js | 276 ++++++++++++++++++
.../workBenchMeterControl/index.json | 20 ++
.../workBenchMeterControl/index.wxml | 163 +++++++++++
.../workBenchMeterControl/index.wxss | 78 +++++
.../components/workBenchTenement/index.js | 12 +-
pages/workBenchNew/index.js | 12 +-
pages/workBenchNew/index.wxml | 7 +-
pages/workBenchTodoList/index.js | 164 ++++++++++-
pages/workBenchTodoList/index.json | 12 +-
pages/workBenchTodoList/index.wxml | 105 ++++++-
pages/workBenchTodoList/index.wxss | 72 ++++-
pages/workOrderDetail/index.js | 66 +++++
pages/workOrderDetail/index.json | 3 +
pages/workOrderDetail/index.wxml | 2 +
pages/workOrderDetail/index.wxss | 1 +
service/meter.js | 5 +
service/workBench.js | 7 +
utils/data.js | 7 +-
27 files changed, 1257 insertions(+), 27 deletions(-)
create mode 100644 pages/workBenchNew/components/workBenchMeterControl/index.js
create mode 100644 pages/workBenchNew/components/workBenchMeterControl/index.json
create mode 100644 pages/workBenchNew/components/workBenchMeterControl/index.wxml
create mode 100644 pages/workBenchNew/components/workBenchMeterControl/index.wxss
create mode 100644 pages/workOrderDetail/index.js
create mode 100644 pages/workOrderDetail/index.json
create mode 100644 pages/workOrderDetail/index.wxml
create mode 100644 pages/workOrderDetail/index.wxss
diff --git a/app.json b/app.json
index ffe9845..09a5502 100644
--- a/app.json
+++ b/app.json
@@ -39,6 +39,7 @@
"pages/billMeterDetail/index",
"pages/meterBalanceRecord/index",
"pages/workBenchNew/components/workBenchMeter/index",
+ "pages/workBenchNew/components/workBenchMeterControl/index",
"pages/workBenchNew/components/workBenchTenement/index",
"pages/workBenchNew/components/workBenchApprove/index",
"pages/workBenchNew/components/workBenchWxUser/index",
@@ -47,7 +48,8 @@
"pages/workBenchNew/components/installMeter/index",
"pages/workBenchNew/components/uninstallMeter/index",
"pages/workBenchTodoList/index",
- "pages/workBenchNew/components/kaihu/index"
+ "pages/workBenchNew/components/kaihu/index",
+ "pages/workOrderDetail/index"
],
"subPackages": [
{
diff --git a/components/searchSelect/index.js b/components/searchSelect/index.js
index 3cadbc3..5702dcf 100644
--- a/components/searchSelect/index.js
+++ b/components/searchSelect/index.js
@@ -2,7 +2,9 @@ import { getLoginParkList, getParkBuildingList } from "../../service/park"
import { getParkSimpleMeterList, getParkBoxList, getCardList, getCollectionList, getInventoryMeter } from "../../service/meter"
import { alertInfo } from "../../utils/index";
import request from "../../utils/request"
-import { payWays, feeType, meterType } from "../../utils/data";
+import { payWays, feeType, meterType, noticeFlowType, noticeFlowStatus,
+ meterMode
+} from "../../utils/data";
import { getTenementList, getWxTenementList } from "../../service/tenement";
const { OK } = request;
@@ -23,6 +25,7 @@ Component({
observers: {
"show,type,filterBind": function(newShow, newType) {
if (newShow && newType) {
+ console.log("newShow", newShow,"newType", newType)
this.onSearch()
}
}
@@ -35,7 +38,10 @@ Component({
searchText: "",
payWays,
feeType,
- meterType
+ meterType,
+ noticeFlowType,
+ noticeFlowStatus,
+ meterMode,
},
lifetimes: {
attached() {
@@ -76,6 +82,17 @@ Component({
})
this.triggerEvent("confirm", { data: item, type, index } );
},
+ onMeterModeConfirm(event) {
+ const { index } = event.detail;
+ const { meterMode = [], type } = this.data;
+ const item = meterMode[index];
+ this.setData({
+ columns: [],
+ list: [],
+ searchText: ""
+ })
+ this.triggerEvent("confirm", { data: item, way: index, type } );
+ },
onPayConfirm(event) {
const { index } = event.detail;
const { payWays = [], type } = this.data;
@@ -87,6 +104,29 @@ Component({
})
this.triggerEvent("confirm", { data: item, way: index, type } );
},
+ onNoticeFlowTypeConfirm(event) {
+ const { index } = event.detail;
+ const { noticeFlowType = [], type } = this.data;
+ const item = noticeFlowType[index];
+ this.setData({
+ columns: [],
+ list: [],
+ searchText: ""
+ })
+ this.triggerEvent("confirm", { data: item, way: index + 1, type } );
+ },
+ onNoticeFlowStatusConfirm(event) {
+ const { index } = event.detail;
+ const { noticeFlowStatus = [], type } = this.data;
+ const item = noticeFlowStatus[index];
+ this.setData({
+ columns: [],
+ list: [],
+ searchText: ""
+ })
+ console.log("{ data: item, way: index + 1, type }", { data: item, way: index + 1, type })
+ this.triggerEvent("confirm", { data: item, way: index + 1, type } );
+ },
onFeeTypeConfirm(event) {
const { index } = event.detail;
const { feeType = [], type } = this.data;
diff --git a/components/searchSelect/index.wxml b/components/searchSelect/index.wxml
index 55957fe..bfef00f 100644
--- a/components/searchSelect/index.wxml
+++ b/components/searchSelect/index.wxml
@@ -36,6 +36,36 @@
bind:confirm="onMeterTypeConfirm"
/>
+
+
+
+
+
+
+
+
+
{{placeholder}}
{{text}}
+
diff --git a/components/searchSelectWrapper/index.wxss b/components/searchSelectWrapper/index.wxss
index 523629c..eafae3e 100644
--- a/components/searchSelectWrapper/index.wxss
+++ b/components/searchSelectWrapper/index.wxss
@@ -15,6 +15,7 @@
border-radius: 12rpx;
border: 1rpx solid #ccc;
background-color: #fff;
+ position: relative;
}
.inputContent {
@@ -26,6 +27,7 @@
border-radius: 12rpx;
border: 1rpx solid #ccc;
background-color: #fff;
+ position: relative;
}
.text {
@@ -39,4 +41,5 @@
.required {
color: rgb(209, 83, 25);
font-size: 30rpx;
-}
\ No newline at end of file
+}
+
diff --git a/pages/workBenchNew/components/kaihu/index.js b/pages/workBenchNew/components/kaihu/index.js
index 6c01e64..264a79b 100644
--- a/pages/workBenchNew/components/kaihu/index.js
+++ b/pages/workBenchNew/components/kaihu/index.js
@@ -1,4 +1,9 @@
// pages/workBenchNew/components/kaihu/index.js
+import { alertInfo, alertSuccess } from "../../../../utils/index"
+import { createBackTenement, updateTenementBackInfo } from "../../../../service/tenement"
+import request from "../../../../utils/request"
+import { payWays, feeType as feeTypeList } from "../../../../utils/data";
+const { OK } = request;
Page({
/**
@@ -7,7 +12,85 @@ Page({
data: {
},
-
+ onParkFocus(e) {
+ this.setData({
+ show: true,
+ title: "园区",
+ type: 'park'
+ })
+ },
+ onBuildingFocus() {
+ const { park } = this.data;
+ if (!park) {
+ alertInfo("请先选择园区")
+ return;
+ }
+ this.setData({
+ show: true,
+ title: "建筑",
+ type: 'building'
+ })
+ },
+ onChange(e) {
+ const { name } = e.currentTarget.dataset;
+ this.setData({
+ [name]: e.detail
+ })
+ },
+ onFeeTypeFocus() {
+ this.setData({
+ show: true,
+ title: "收费类型",
+ type: 'feeType'
+ })
+ },
+ onCancel() {
+ this.setData({ show: false })
+ },
+ async onSubmit() {
+ const { name, shortName, address, contact,
+ phone, building, feeType, park, editType, id, parkName,
+
+ } = this.data;
+ const { code, message } = await createBackTenement(park, { name, shortName, address, contact, phone, building, feeType })
+ if (code !== OK) {
+ alertInfo(message)
+ return
+ }
+ alertSuccess("开户成功")
+ // wx.navigateBack()
+ wx.redirectTo({
+ url: `/pages/workBenchNew/components/workBenchTenement/index?park=${park}&parkName=${parkName}&name=${name}`,
+ })
+ },
+ handleBack() {
+ wx.navigateBack()
+ },
+ onConfirm(e) {
+ const { type, data, way } = e.detail;
+ switch(type) {
+ case "park":
+ this.setData({
+ park: data.id,
+ parkName: data.name,
+ show: false,
+ })
+ return;
+ case "building":
+ this.setData({
+ building: data.id,
+ buildingName: data.name,
+ show: false,
+ })
+ return;
+ case "feeType":
+ this.setData({
+ feeTypeName: data,
+ feeType: way,
+ show: false,
+ })
+ }
+ },
/**
* 生命周期函数--监听页面加载
*/
diff --git a/pages/workBenchNew/components/kaihu/index.wxml b/pages/workBenchNew/components/kaihu/index.wxml
index 71f2ddd..ff351a5 100644
--- a/pages/workBenchNew/components/kaihu/index.wxml
+++ b/pages/workBenchNew/components/kaihu/index.wxml
@@ -1,6 +1,19 @@
+
+
+ 选择
+
+
-
\ No newline at end of file
+
+
+
+ 保存
+ 返回
+
+
+
+
\ No newline at end of file
diff --git a/pages/workBenchNew/components/uninstallMeter/index.js b/pages/workBenchNew/components/uninstallMeter/index.js
index 0ae2e6a..f785687 100644
--- a/pages/workBenchNew/components/uninstallMeter/index.js
+++ b/pages/workBenchNew/components/uninstallMeter/index.js
@@ -1,6 +1,11 @@
// pages/workBenchNew/components/uninstallMeter/index.js
+import { uninstallMeter } from "../../../../service/meter";
import dayjs from "../../../../utils/dayjs"
-import { alertInfo, } from "../../../../utils/index"
+import request from "../../../../utils/request"
+import { alertInfo, alertSuccess, } from "../../../../utils/index"
+
+const { OK } = request;
+
Page({
/**
@@ -66,6 +71,7 @@ Page({
this.setData({
meter: data.id,
meterName: data.address,
+ meterInfo: data,
});
break;
case "card":
@@ -106,6 +112,59 @@ Page({
type: "",
})
},
+ async onSubmit() {
+ const { meter, } = this.data;
+ if (!meter) {
+ alertInfo("请选择表号")
+ return;
+ }
+ const { code, message } = await uninstallMeter(meter)
+ if (code !== OK) {
+ alertInfo(message)
+ return
+ }
+ alertSuccess("拆除成功")
+ setTimeout(() => {
+ wx.navigateTo({
+ url: '/pages/workBenchTodoList/index',
+ })
+ }, 300)
+ },
+ uploadImage() {
+ const that = this;
+ wx.chooseMedia({
+ count: 1,
+ mediaType: ['image'],
+ sourceType: ['album', 'camera'],
+ success: async function(res) {
+ console.log("res", res)
+ const path = res.tempFiles?.[0]?.tempFilePath.toLowerCase()
+ if (!/(\.jpg|\.png|\.jpeg)$/.test(path)) {
+ wx.showToast({
+ title: '请上传jpg、png或jpeg格式的图片',
+ icon: 'none',
+ });
+ return;
+ }
+ var tempFilePaths = path;
+ loadingFunc(async () => {
+ const { code, message, url } = await uploadInstallMeter(tempFilePaths)
+ if (code !== OK) {
+ alertError(message)
+ return
+ }
+ that.setData({
+ url: url
+ })
+ })
+ }
+ })
+ },
+ clearImage() {
+ this.setData({
+ url: ""
+ })
+ },
goback() {
wx.navigateBack()
},
diff --git a/pages/workBenchNew/components/uninstallMeter/index.wxml b/pages/workBenchNew/components/uninstallMeter/index.wxml
index 8941895..91330e9 100644
--- a/pages/workBenchNew/components/uninstallMeter/index.wxml
+++ b/pages/workBenchNew/components/uninstallMeter/index.wxml
@@ -39,11 +39,19 @@
type=""
hideBorder="{{true}}"
>
- 上传
+
+
+ 上传
+
+ 清除
+
+
+
+
- 提交
+ 提交
返回
diff --git a/pages/workBenchNew/components/workBenchMeterControl/index.js b/pages/workBenchNew/components/workBenchMeterControl/index.js
new file mode 100644
index 0000000..a148276
--- /dev/null
+++ b/pages/workBenchNew/components/workBenchMeterControl/index.js
@@ -0,0 +1,276 @@
+// pages/workBenchNew/components/workBenchMeter/index.js
+
+import { alertInfo, alertSuccess, loadingFunc } from "../../../../utils/index";
+import { getParkMeterList, handleOperateMeterSwitch } from "../../../../service/meter"
+import request from "../../../../utils/request"
+const { OK } = request
+
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ keyword: "",
+ keywordTemp: "",
+ page: 1,
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+
+ },
+ onParkFocus(e) {
+ this.setData({
+ show: true,
+ title: "园区",
+ type: 'park'
+ })
+ },
+ onModeFocus(e) {
+ this.setData({
+ show: true,
+ title: "强控类型",
+ type: 'meterMode'
+ })
+ },
+ onMeterFocus(e) {
+ const { park } = this.data;
+ if (!park) {
+ alertInfo("请先选择园区")
+ return;
+ }
+ this.setData({
+ show: true,
+ title: "电表",
+ type: 'meter'
+ })
+ },
+ onConfirm(e) {
+ const { data, type, way } = e.detail;
+ const that = this;
+ switch(type) {
+ case "park":
+ this.setData({
+ parkName: data.name,
+ park: data.id,
+ })
+ break;
+ case "meterMode":
+ this.setData({
+ modeName: data,
+ mode: way,
+ })
+ break;
+ case "meter":
+ this.setData({
+ meterName: data.address,
+ meter: data.id,
+ }, () => {
+ loadingFunc(async () => {
+ await that.init();
+ })
+ })
+ break;
+ }
+
+ this.onCancel();
+ },
+ onChangeKeyword(e) {
+ this.setData({ keywordTemp: e.detail })
+ },
+ changeDays(e) {
+ this.setData({
+ days: e.detail,
+ })
+ },
+ uploadImage() {
+ const that = this;
+ wx.chooseMedia({
+ count: 1,
+ mediaType: ['image'],
+ sourceType: ['album', 'camera'],
+ success: async function(res) {
+ console.log("res", res)
+ const path = res.tempFiles?.[0]?.tempFilePath.toLowerCase()
+ if (!/(\.jpg|\.png|\.jpeg)$/.test(path)) {
+ wx.showToast({
+ title: '请上传jpg、png或jpeg格式的图片',
+ icon: 'none',
+ });
+ return;
+ }
+ var tempFilePaths = path;
+ loadingFunc(async () => {
+ const { code, message, url } = await uploadInstallMeter(tempFilePaths)
+ if (code !== OK) {
+ alertError(message)
+ return
+ }
+ that.setData({
+ url: url
+ })
+ })
+ }
+ })
+ },
+ clearImage() {
+ this.setData({
+ url: ""
+ })
+ },
+ changeReason(e) {
+ this.setData({
+ reason: e.detail,
+ })
+ },
+ onSearch() {
+ const that = this;
+ that.setData({
+ keyword: that.data.keywordTemp
+ }, () => {
+ loadingFunc(async () => {
+ await that.init();
+ })
+ })
+ },
+ async init() {
+ const { page, park, meter } = this.data;
+ if (!park) {
+ return;
+ }
+ const { code, message, data, total } = await getParkMeterList({ park, keyword: meter, page })
+ if (code !== OK) {
+ alertInfo(message);
+ return;
+ }
+ this.setData({
+ list: data,
+ total: total,
+ totalPage: Math.ceil(total / 20)
+ })
+ },
+ async onChangePage(e) {
+ const page = e.detail.currentIndex;
+ const that = this;
+ this.setData({
+ page
+ }, () => {
+ loadingFunc(async () => {
+ await that.init();
+ })
+ })
+ },
+ onCancel() {
+ this.setData({
+ show: false,
+ title: "",
+ type: "",
+ })
+ },
+ onChangeSelectMeter(e) {
+ this.setData({
+ meter: e.detail
+ })
+ },
+ async handleMeterSwitchOn() {
+ const that = this;
+ const { meter, meterName } = this.data;
+ wx.showModal({
+ title: '提示',
+ content: `您确认要对${meterName || 当前电表}进行合闸吗?`,
+ complete: async (res) => {
+ if (res.cancel) {
+
+ }
+
+ if (res.confirm) {
+ loadingFunc(async () => {
+ const { code, message } = await handleOperateMeterSwitch({ ids: [meter], status: 0 })
+ if (code !== OK) {
+ alertInfo(message)
+ return;
+ }
+ alertSuccess("合闸成功")
+ that.init();
+ })
+
+ }
+ }
+ })
+ },
+ async handleMeterSwitchOff() {
+ const that = this;
+ const { meter, meterName } = this.data;
+ wx.showModal({
+ title: '提示',
+ content: `您确认要对${meterName || 当前电表}进行拉闸吗?`,
+ complete: async (res) => {
+ if (res.cancel) {
+ return;
+ }
+ if (res.confirm) {
+ loadingFunc(async () => {
+ const { code, message } = await handleOperateMeterSwitch({ ids: [meter], status: 1 })
+ if (code !== OK) {
+ alertInfo(message)
+ return;
+ }
+ alertSuccess("拉闸成功")
+ that.init();
+ })
+ }
+ }
+ })
+ },
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload() {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom() {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage() {
+
+ }
+})
\ No newline at end of file
diff --git a/pages/workBenchNew/components/workBenchMeterControl/index.json b/pages/workBenchNew/components/workBenchMeterControl/index.json
new file mode 100644
index 0000000..cf25777
--- /dev/null
+++ b/pages/workBenchNew/components/workBenchMeterControl/index.json
@@ -0,0 +1,20 @@
+{
+ "usingComponents": {
+ "van-field": "@vant/weapp/field/index",
+ "van-button": "@vant/weapp/button/index",
+ "search-select": "/components/searchSelect/index",
+ "van-empty": "@vant/weapp/empty/index",
+ "table": "/components/table/table",
+ "pagination": "/components/pagination/index",
+ "empty": "/components/empty/index",
+ "van-radio": "@vant/weapp/radio/index",
+ "van-radio-group": "@vant/weapp/radio-group/index",
+ "van-tag": "@vant/weapp/tag/index",
+ "van-row": "@vant/weapp/row/index",
+ "van-col": "@vant/weapp/col/index",
+ "navigator": "/components/navigator/index",
+ "searchSelectWrapper": "/components/searchSelectWrapper/index",
+ "van-popup": "@vant/weapp/popup/index"
+ },
+ "navigationStyle": "custom"
+}
\ No newline at end of file
diff --git a/pages/workBenchNew/components/workBenchMeterControl/index.wxml b/pages/workBenchNew/components/workBenchMeterControl/index.wxml
new file mode 100644
index 0000000..97a2091
--- /dev/null
+++ b/pages/workBenchNew/components/workBenchMeterControl/index.wxml
@@ -0,0 +1,163 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.tenement.shortName}}
+
+ {{item.tenement.name}}
+
+
+
+
+
+
+
+
+ 商户电表
+
+ 公摊电表
+
+ 园区电表
+ 表号:{{item.meterNo}}
+
+
+
+
+
+
+
+ {{item.address}}
+
+ SN:{{item.meterSn}}
+
+
+
+
+
+
+
+ 表字:{{item.amount}}
+
+ 余额:{{item.money}}
+
+
+
+
+
+
+
+ 合闸
+ 拉闸
+
+
+
+ 在线
+ 预付费
+ 强控
+ 临时强控
+
+
+
+
+ 失联
+ 预付费
+ 强控
+ 临时强控
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 上传
+
+ 清除
+
+
+
+
+
+
+
+ 提交
+ 返回
+
+
+
+
+
+
+
+
diff --git a/pages/workBenchNew/components/workBenchMeterControl/index.wxss b/pages/workBenchNew/components/workBenchMeterControl/index.wxss
new file mode 100644
index 0000000..d259093
--- /dev/null
+++ b/pages/workBenchNew/components/workBenchMeterControl/index.wxss
@@ -0,0 +1,78 @@
+/* pages/workBench/components/record/index.wxss */
+.table {
+ width: 890rpx;
+
+}
+
+.classWrapper {
+ width: 100vw;
+ overflow-x: auto;
+}
+
+.thead {
+ display: flex;
+ flex-wrap: nowrap;
+ border-bottom: 1rpx solid #EEEEEE;
+}
+
+.thead .th {
+ padding: 20rpx;
+ white-space: nowrap;
+ text-align: center;
+ box-sizing: border-box;
+
+}
+
+.tbody {
+ width: 890rpx;
+}
+
+.tbody .tr {
+ padding: 20rpx;
+ border-bottom: 1rpx solid #EEEEEE;
+ display: flex;
+ align-items: center;
+ flex-wrap: nowrap;
+}
+
+.tbody .th {
+ word-break: break-all;
+ text-align: center;
+}
+
+.customTable {
+ margin: 20rpx;
+}
+
+.customTableTile {
+ background-color: var(--light-green);
+ padding: 16rpx;
+ box-sizing: border-box;
+ font-weight: 700;
+}
+
+.tableRow {
+ padding: 16rpx;
+ border: 1rpx solid #ccc;
+ border-top: 0rpx;
+}
+
+page {
+ background-color: rgb(228,240,236);
+ font-size: 32rpx;
+ }
+
+
+ .operate {
+ display: flex;
+ padding-top: 24rpx;
+ padding-bottom: 36rpx;
+}
+
+.submit, .cancel {
+ flex: 1;
+}
+
+.submit {
+ margin-right: 30rpx;
+}
diff --git a/pages/workBenchNew/components/workBenchTenement/index.js b/pages/workBenchNew/components/workBenchTenement/index.js
index 59f3cb2..ce91abd 100644
--- a/pages/workBenchNew/components/workBenchTenement/index.js
+++ b/pages/workBenchNew/components/workBenchTenement/index.js
@@ -20,7 +20,17 @@ Page({
* 生命周期函数--监听页面加载
*/
onLoad(options) {
-
+ console.log("options", options)
+ const { park, parkName, name, id } = options
+ this.setData({
+ park,
+ parkName,
+ tenementName: name,
+ tenement: id
+ })
+ if (id) {
+ this.getTenementInfo();
+ }
},
onParkFocus(e) {
this.setData({
diff --git a/pages/workBenchNew/index.js b/pages/workBenchNew/index.js
index aa4fd6b..dfec314 100644
--- a/pages/workBenchNew/index.js
+++ b/pages/workBenchNew/index.js
@@ -78,7 +78,17 @@ Page({
},
jumpToKaihu() {
wx.navigateTo({
- url: 'pages/workBenchNew/components/kaihu/index',
+ url: '/pages/workBenchNew/components/kaihu/index',
+ })
+ },
+ jumpToMeterControl() {
+ wx.navigateTo({
+ url: '/pages/workBenchNew/components/workBenchMeterControl/index',
+ })
+ },
+ workOrder() {
+ wx.navigateTo({
+ url: '/pages/workBenchTodoList/index',
})
},
/**
diff --git a/pages/workBenchNew/index.wxml b/pages/workBenchNew/index.wxml
index e237b49..ec91b45 100644
--- a/pages/workBenchNew/index.wxml
+++ b/pages/workBenchNew/index.wxml
@@ -114,10 +114,13 @@
-
+
-
+
+
+
+
diff --git a/pages/workBenchTodoList/index.js b/pages/workBenchTodoList/index.js
index 4b9ffea..521b868 100644
--- a/pages/workBenchTodoList/index.js
+++ b/pages/workBenchTodoList/index.js
@@ -1,18 +1,178 @@
// pages/workBenchTodoList/index.js
+import request from "../../utils/request"
+import { getWorkOrderList } from "../../service/workBench"
+import { alertInfo, loadingFunc } from "../../utils/index";
+import { noticeFlowType } from "../../utils/data"
+const { OK } = request
Page({
/**
* 页面的初始数据
*/
data: {
-
+ page: 1,
+ size: 20,
+ noticeFlowType,
+ actionItems: [{
+ name: '确认',
+ value: 'status'
+ }],
},
+ showActionMenu(e) {
+ console.log("e", e)
+ this.setData({
+ currentActionSheet: e.currentTarget.dataset.id
+ });
+},
+hideActionMenu() {
+ this.setData({
+ currentActionSheet: null
+ });
+},
+onMenuSelect(e) {
+ const {
+ value
+ } = e.detail;
+ const id = e.currentTarget.dataset.id;
+ if (value === 'detail') {
+ this.jumpToDetail(id);
+ }
+},
+ jumpToDetail(id) {
+
+ // wx.navigateTo({
+ // url: '/pages/workOrderDetail/index?id=' + id,
+ // })
+ },
+ onConfirm(e) {
+ const { type, data = {}, way } = e.detail;
+ const that = this;
+ switch(type) {
+ case "park":
+ this.setData({
+ park: data.id,
+ parkName: data.name,
+ })
+ break;
+ case "tenement":
+ this.setData({
+ tenement: data.id,
+ tenementName: data.name,
+ })
+ break;
+
+ case "noticeFlowType":
+ this.setData({
+ noticeFlowType: data,
+ noticeFlowTypeName: data,
+ page: 1,
+ }, () => {
+ loadingFunc(async () => {
+ await that.init()
+ })
+ });
+ break;
+ case "noticeFlowStatus":
+ this.setData({
+ noticeFlowStatus: data,
+ noticeFlowStatusName: data,
+ page: 1,
+ }, () => {
+ loadingFunc(async () => {
+ await that.init()
+ })
+ });
+ break;
+ case "meter":
+ this.setData({
+ meter: data.id,
+ meterName: data.address,
+ meterInfo: data,
+ page: 1,
+ }, () => {
+ loadingFunc(async () => {
+ await that.init()
+ })
+ });
+ break;
+ }
+ this.onCancel();
+ },
+ onCancel() {
+ this.setData({
+ show: false,
+ title: "",
+ type: "",
+ })
+ },
+ onParkFocus(e) {
+ this.setData({
+ show: true,
+ title: "园区",
+ type: 'park'
+ })
+ },
+ onNoticeFlowFocus() {
+ this.setData({
+ show: true,
+ title: "类型",
+ type: 'noticeFlowType'
+ })
+ },
+ onNoticeFlowStatusFocus() {
+ this.setData({
+ show: true,
+ title: "确认状态",
+ type: 'noticeFlowStatus'
+ })
+ },
+ onMeterFocus(e) {
+ const { park } = this.data;
+ if (!park) {
+ alertInfo("请先选择园区")
+ return;
+ }
+ this.setData({
+ show: true,
+ title: "电表",
+ type: 'meter'
+ })
+ },
+ onChangePage(e) {
+ const that = this;
+ this.setData({
+ page: e.detail.currentIndex,
+ }, () => {
+ loadingFunc(async () => {
+ await that.init()
+ })
+ })
+ console.log("e", e)
+ },
+ async init() {
+ const { page, size, park, tenement, meter, type, time, status } = this.data;
+ const { code, message, data, total } = await getWorkOrderList({ page, size, park, tenement, meter, type, time, status })
+ if (code !== OK) {
+ alertInfo(message)
+ return;
+ }
+ this.setData({
+ list: data?.map(item => {
+ item.time = item?.created_at?.slice(0, 10)
+ item.address = item?.target?.meter_data?.address;
+ return item;
+ }),
+ totalPage: Math.ceil(total / size),
+ })
+ },
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
-
+ loadingFunc(async () => {
+ await this.init()
+ })
},
/**
diff --git a/pages/workBenchTodoList/index.json b/pages/workBenchTodoList/index.json
index aff1cbd..ede92dd 100644
--- a/pages/workBenchTodoList/index.json
+++ b/pages/workBenchTodoList/index.json
@@ -7,7 +7,17 @@
"search-select": "/components/searchSelect/index",
"van-field": "@vant/weapp/field/index",
"van-button": "@vant/weapp/button/index",
- "searchSelectWrapper": "/components/searchSelectWrapper/index"
+ "searchSelectWrapper": "/components/searchSelectWrapper/index",
+ "van-empty": "@vant/weapp/empty/index",
+ "table": "/components/table/table",
+ "pagination": "/components/pagination/index",
+ "empty": "/components/empty/index",
+ "van-radio": "@vant/weapp/radio/index",
+ "van-radio-group": "@vant/weapp/radio-group/index",
+ "van-dialog": "@vant/weapp/dialog/index",
+ "van-icon": "@vant/weapp/icon/index",
+ "van-action-sheet": "@vant/weapp/action-sheet/index"
+
},
"navigationStyle": "custom"
}
\ No newline at end of file
diff --git a/pages/workBenchTodoList/index.wxml b/pages/workBenchTodoList/index.wxml
index 8603edb..0d26819 100644
--- a/pages/workBenchTodoList/index.wxml
+++ b/pages/workBenchTodoList/index.wxml
@@ -1,12 +1,99 @@
-
-
- 1
-
-
- 2
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+ 时间
+ 类型
+ 电表地址
+ 状态
+ 操作
+
+
+
+
+
+
+ {{ item.time }}
+
+
+ {{ noticeFlowType[item.types - 1] }}
+
+
+
+ {{ item.address }}
+
+
+ {{ item.flow_status === 1 ? "处理中" : "已确认" }}
+
+
+
+ 确认
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/workBenchTodoList/index.wxss b/pages/workBenchTodoList/index.wxss
index f05fa3a..ea6fa96 100644
--- a/pages/workBenchTodoList/index.wxss
+++ b/pages/workBenchTodoList/index.wxss
@@ -1 +1,71 @@
-/* pages/workBenchTodoList/index.wxss */
\ No newline at end of file
+/* pages/workBenchTodoList/index.wxss */
+
+.table {
+ width: 500rpx;
+
+}
+
+.tableWrapper {
+ width: 100vw;
+ overflow-x: auto;
+}
+
+.thead {
+
+ display: flex;
+ flex-wrap: nowrap;
+
+}
+
+.thead .th {
+ padding: 10rpx;
+ white-space: nowrap;
+ text-align: center;
+ box-sizing: border-box;
+}
+
+.primaryTextBtn {
+ color: #1989fa;
+ }
+
+.tbody {
+ width: 500rpx;
+}
+
+.tbody .tr {
+ padding: 10rpx;
+ border-bottom: 1rpx solid #EEEEEE;
+ display: flex;
+ align-items: center;
+ flex-wrap: nowrap;
+}
+
+.tbody .tr {
+ word-break: break-all;
+ text-align: center;
+}
+
+.more-icon {
+ padding: 20rpx;
+ color: #1989fa;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+
+/* 基础标签样式 */
+.tag {
+ display: inline-block;
+ padding: 4px 5px;
+ margin-right: 0px;
+ border-radius: 16px;
+ background: #07c160;
+ color: white;
+ font-size: 25rpx;
+ }
+
+ /* 激活状态样式 */
+ .tag.active {
+ background: #07c160;
+ color: white;
+ }
\ No newline at end of file
diff --git a/pages/workOrderDetail/index.js b/pages/workOrderDetail/index.js
new file mode 100644
index 0000000..9b339ba
--- /dev/null
+++ b/pages/workOrderDetail/index.js
@@ -0,0 +1,66 @@
+// pages/workOrderDetail/index.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload() {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom() {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage() {
+
+ }
+})
\ No newline at end of file
diff --git a/pages/workOrderDetail/index.json b/pages/workOrderDetail/index.json
new file mode 100644
index 0000000..8835af0
--- /dev/null
+++ b/pages/workOrderDetail/index.json
@@ -0,0 +1,3 @@
+{
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/pages/workOrderDetail/index.wxml b/pages/workOrderDetail/index.wxml
new file mode 100644
index 0000000..15d3210
--- /dev/null
+++ b/pages/workOrderDetail/index.wxml
@@ -0,0 +1,2 @@
+
+pages/workOrderDetail/index.wxml
\ No newline at end of file
diff --git a/pages/workOrderDetail/index.wxss b/pages/workOrderDetail/index.wxss
new file mode 100644
index 0000000..d1b82a2
--- /dev/null
+++ b/pages/workOrderDetail/index.wxss
@@ -0,0 +1 @@
+/* pages/workOrderDetail/index.wxss */
\ No newline at end of file
diff --git a/service/meter.js b/service/meter.js
index a610bcd..aa8dca4 100644
--- a/service/meter.js
+++ b/service/meter.js
@@ -67,4 +67,9 @@ export const getInventoryMeter = async function({park = "", keyword = "", page =
// 新装电表
export const installMeter = async function(data) {
return await POST(`/wx/workBench/installMeter`, data);
+}
+
+// 拆表
+export const uninstallMeter = async function(sn) {
+ return await DELETE(`/flow/doMeterRemoveApproval?sn=${sn}`);
}
\ No newline at end of file
diff --git a/service/workBench.js b/service/workBench.js
index a079d17..61f0169 100644
--- a/service/workBench.js
+++ b/service/workBench.js
@@ -49,4 +49,11 @@ export const checkReadingFinish = async function(id) {
// 获取工作台首页
export const getWorkBenchHome = async function() {
return await GET(`/workHome/mainPage`,);
+}
+
+// 获取工单列表
+export const getWorkOrderList = async function({
+ page, size, park = "", meter = "", tenement = "", status = "", type = "", time = ""
+}) {
+ return await GET(`/noticeFlow/getDisposeList?page=${page}&size=${size}&park=${park}&meter=${meter}&tenement=${tenement}&status=${status}&type=${type}&time=${time}`,);
}
\ No newline at end of file
diff --git a/utils/data.js b/utils/data.js
index 2156c41..b9c09b9 100644
--- a/utils/data.js
+++ b/utils/data.js
@@ -11,4 +11,9 @@ export const getRechargeOperateWay = (num) => {
export const feeType = ['华昌宝能收费', "物业代收1", "物业代收2", "物业代收线损"]
-export const meterType = ['商户电表', '园区电表', '公摊电表']
\ No newline at end of file
+export const meterType = ['商户电表', '园区电表', '公摊电表']
+
+export const noticeFlowType = ['拆表', '装表', '开户', "解绑", "绑定"]
+export const noticeFlowStatus = ["已确认", "待确认"]
+
+export const meterMode = ["预付费", "强控", "临时强控"]
\ No newline at end of file
From 07add888565b4bbf2c4bf793c42086804c4320c6 Mon Sep 17 00:00:00 2001
From: qiaomu <3520484422@qq.com>
Date: Mon, 10 Nov 2025 16:09:38 +0800
Subject: [PATCH 08/11] =?UTF-8?q?=E8=81=94=E8=B0=83=E6=8B=86=E8=A1=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../components/uninstallMeter/index.js | 21 ++++++++++++++-----
.../components/uninstallMeter/index.json | 3 ++-
.../components/uninstallMeter/index.wxml | 2 +-
pages/workBenchTodoList/index.js | 5 ++---
service/meter.js | 4 ++--
service/public.js | 20 ++++++++++++++++++
6 files changed, 43 insertions(+), 12 deletions(-)
diff --git a/pages/workBenchNew/components/uninstallMeter/index.js b/pages/workBenchNew/components/uninstallMeter/index.js
index f785687..62ed294 100644
--- a/pages/workBenchNew/components/uninstallMeter/index.js
+++ b/pages/workBenchNew/components/uninstallMeter/index.js
@@ -1,8 +1,9 @@
// pages/workBenchNew/components/uninstallMeter/index.js
-import { uninstallMeter } from "../../../../service/meter";
+import { uninstallMeter, } from "../../../../service/meter";
import dayjs from "../../../../utils/dayjs"
import request from "../../../../utils/request"
-import { alertInfo, alertSuccess, } from "../../../../utils/index"
+import { alertInfo, alertSuccess, loadingFunc} from "../../../../utils/index"
+import { uploadUninstallMeter } from "../../../../service/public"
const { OK } = request;
@@ -113,12 +114,12 @@ Page({
})
},
async onSubmit() {
- const { meter, } = this.data;
+ const { meter, reason, url, meterInfo } = this.data;
if (!meter) {
alertInfo("请选择表号")
return;
}
- const { code, message } = await uninstallMeter(meter)
+ const { code, message } = await uninstallMeter({sn: meterInfo.meterSn, images: url, reason})
if (code !== OK) {
alertInfo(message)
return
@@ -148,7 +149,7 @@ Page({
}
var tempFilePaths = path;
loadingFunc(async () => {
- const { code, message, url } = await uploadInstallMeter(tempFilePaths)
+ const { code, message, url } = await uploadUninstallMeter(tempFilePaths)
if (code !== OK) {
alertError(message)
return
@@ -165,6 +166,16 @@ Page({
url: ""
})
},
+ showImage() {
+ this.setData({
+ imageShow: true
+ })
+ },
+ onClose() {
+ this.setData({
+ imageShow: false
+ })
+ },
goback() {
wx.navigateBack()
},
diff --git a/pages/workBenchNew/components/uninstallMeter/index.json b/pages/workBenchNew/components/uninstallMeter/index.json
index a676309..003c648 100644
--- a/pages/workBenchNew/components/uninstallMeter/index.json
+++ b/pages/workBenchNew/components/uninstallMeter/index.json
@@ -5,7 +5,8 @@
"search-select": "/components/searchSelect/index",
"van-field": "@vant/weapp/field/index",
"van-button": "@vant/weapp/button/index",
- "searchSelectWrapper": "/components/searchSelectWrapper/index"
+ "searchSelectWrapper": "/components/searchSelectWrapper/index",
+ "van-image": "@vant/weapp/image/index"
},
"navigationStyle": "custom"
}
\ No newline at end of file
diff --git a/pages/workBenchNew/components/uninstallMeter/index.wxml b/pages/workBenchNew/components/uninstallMeter/index.wxml
index 91330e9..a3b5474 100644
--- a/pages/workBenchNew/components/uninstallMeter/index.wxml
+++ b/pages/workBenchNew/components/uninstallMeter/index.wxml
@@ -46,7 +46,7 @@
清除
-
+
diff --git a/pages/workBenchTodoList/index.js b/pages/workBenchTodoList/index.js
index 521b868..bedbce6 100644
--- a/pages/workBenchTodoList/index.js
+++ b/pages/workBenchTodoList/index.js
@@ -148,11 +148,10 @@ onMenuSelect(e) {
await that.init()
})
})
- console.log("e", e)
},
async init() {
- const { page, size, park, tenement, meter, type, time, status } = this.data;
- const { code, message, data, total } = await getWorkOrderList({ page, size, park, tenement, meter, type, time, status })
+ const { page, size, park, tenement, meter, noticeFlowType, noticeFlowStatus, time } = this.data;
+ const { code, message, data, total } = await getWorkOrderList({ page, size, park, tenement, meter, type: noticeFlowType, time, status: noticeFlowStatus })
if (code !== OK) {
alertInfo(message)
return;
diff --git a/service/meter.js b/service/meter.js
index aa8dca4..7718f03 100644
--- a/service/meter.js
+++ b/service/meter.js
@@ -70,6 +70,6 @@ export const installMeter = async function(data) {
}
// 拆表
-export const uninstallMeter = async function(sn) {
- return await DELETE(`/flow/doMeterRemoveApproval?sn=${sn}`);
+export const uninstallMeter = async function({sn, reason, images}) {
+ return await DELETE(`/flow/doMeterRemoveApproval`, { sn, reason, images });
}
\ No newline at end of file
diff --git a/service/public.js b/service/public.js
index 9a40ece..a7c1acd 100644
--- a/service/public.js
+++ b/service/public.js
@@ -63,6 +63,26 @@ export const uploadInstallMeter = (filePath) => {
})
}
+export const uploadUninstallMeter = (filePath) => {
+ const { api } = getConfigByEnv();
+ return new Promise((resolve, reject) => {
+ wx.uploadFile({
+ filePath: filePath,
+ name: 'data',
+ url: `${api}/image/meter/delete`,
+ header: {
+ authorization: 'Bearer ' + wx.getStorageSync("token")
+ },
+ success: (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) => {
From 48f35e2e91b9822a4fec0e182bc9d51040168eee Mon Sep 17 00:00:00 2001
From: qiaomu <3520484422@qq.com>
Date: Mon, 10 Nov 2025 17:38:06 +0800
Subject: [PATCH 09/11] =?UTF-8?q?=E6=8B=86=E8=A1=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
service/meter.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/service/meter.js b/service/meter.js
index 7718f03..b1eaa9d 100644
--- a/service/meter.js
+++ b/service/meter.js
@@ -71,5 +71,5 @@ export const installMeter = async function(data) {
// 拆表
export const uninstallMeter = async function({sn, reason, images}) {
- return await DELETE(`/flow/doMeterRemoveApproval`, { sn, reason, images });
+ return await DELETE(`/flow/doMeterRemoveApproval?sn=${sn}&reason=${reason}&images=${images}`);
}
\ No newline at end of file
From ed5fea105f5521250899a74826568182f5e3723c Mon Sep 17 00:00:00 2001
From: qiaomu <3520484422@qq.com>
Date: Wed, 12 Nov 2025 08:49:16 +0800
Subject: [PATCH 10/11] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8F=82=E6=95=B0undef?=
=?UTF-8?q?ined=E7=9A=84=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
service/meter.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/service/meter.js b/service/meter.js
index b1eaa9d..276cc0e 100644
--- a/service/meter.js
+++ b/service/meter.js
@@ -70,6 +70,6 @@ export const installMeter = async function(data) {
}
// 拆表
-export const uninstallMeter = async function({sn, reason, images}) {
+export const uninstallMeter = async function({sn = "", reason = "", images = ""}) {
return await DELETE(`/flow/doMeterRemoveApproval?sn=${sn}&reason=${reason}&images=${images}`);
}
\ No newline at end of file
From 8af3586e22a3932e08bde46633086578042dc86c Mon Sep 17 00:00:00 2001
From: qiaomu <3520484422@qq.com>
Date: Wed, 12 Nov 2025 08:56:43 +0800
Subject: [PATCH 11/11] =?UTF-8?q?=E5=88=A0=E6=8E=89=E6=B3=A8=E9=87=8A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pages/meterBalanceRecord/index.wxml | 40 -------------------
.../components/workBenchMeterControl/index.js | 3 ++
2 files changed, 3 insertions(+), 40 deletions(-)
diff --git a/pages/meterBalanceRecord/index.wxml b/pages/meterBalanceRecord/index.wxml
index e22637d..81e16b7 100644
--- a/pages/meterBalanceRecord/index.wxml
+++ b/pages/meterBalanceRecord/index.wxml
@@ -11,46 +11,6 @@
-