From 430809639412648eb324be95c9e924c5037fd61b Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Wed, 17 Sep 2025 14:51:36 +0800 Subject: [PATCH 01/51] =?UTF-8?q?=E5=87=86=E5=A4=87=E8=81=94=E8=B0=83?= =?UTF-8?q?=E6=8A=84=E8=A1=A8=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/editModal/index.js | 22 ++++++++++-- .../components/editModal/index.wxml | 2 ++ .../components/meterInfo/index.wxss | 4 +++ pages/readingHistory/index.js | 34 ++++++++++++++++--- pages/readingHistory/index.wxml | 15 ++++++-- pages/workBench/index.js | 2 +- .../components/readingInfo/index.js | 2 +- service/workBench.js | 6 ++++ 8 files changed, 74 insertions(+), 13 deletions(-) diff --git a/pages/readingHistory/components/editModal/index.js b/pages/readingHistory/components/editModal/index.js index f066012..b8ab777 100644 --- a/pages/readingHistory/components/editModal/index.js +++ b/pages/readingHistory/components/editModal/index.js @@ -1,6 +1,6 @@ // pages/workBench/components/tenement/components/bindMeter/index.js // 0015980101 -import { bindMeter, } from "../../../../service/tenement" +import { createReading } from "../../../../service/workBench" import { getWorkMeterDetail } from "../../../../service/meter" import { alertInfo, alertSuccess } from "../../../../utils/index"; import request from "../../../../utils/request" @@ -16,7 +16,9 @@ Component({ title: String, timeProps: String, numberProps: String, - id: String + id: String, + meter: String, + park: String }, observers: { "timeProps": function(newValue) { @@ -63,10 +65,24 @@ Component({ }) }, async onSubmit() { - const { time, number } = this.data; + const { time, number, id, park, meter } = this.data; if (time == null || number == null) { alertInfo("请正确填写后保存") return; + } + if (!id) { + const { code, message } = await createReading(park, meter, { + overall: `${number}`, + flat: `${number}`, + readAt: time + }) + if (code !== OK) { + alertError(message) + return + } + alertSuccess("录入成功") + } else { + } this.triggerEvent("ok") }, diff --git a/pages/readingHistory/components/editModal/index.wxml b/pages/readingHistory/components/editModal/index.wxml index 12356ca..e699846 100644 --- a/pages/readingHistory/components/editModal/index.wxml +++ b/pages/readingHistory/components/editModal/index.wxml @@ -25,6 +25,8 @@ value="{{ number }}" placeholder="请输入读数" label="读数" + bind:change="onChange" + data-name="number" type="digit" border="{{ false }}" title-width="100rpx" diff --git a/pages/readingHistory/components/meterInfo/index.wxss b/pages/readingHistory/components/meterInfo/index.wxss index c257812..b7f616d 100644 --- a/pages/readingHistory/components/meterInfo/index.wxss +++ b/pages/readingHistory/components/meterInfo/index.wxss @@ -19,4 +19,8 @@ justify-content: space-between; font-size: 30rpx; margin-bottom: 20rpx; +} + +.status { + font-size: 30rpx; } \ No newline at end of file diff --git a/pages/readingHistory/index.js b/pages/readingHistory/index.js index 792222d..a0cc352 100644 --- a/pages/readingHistory/index.js +++ b/pages/readingHistory/index.js @@ -1,7 +1,7 @@ // pages/readingHistory/index.js -import { getMeterReadingRouteMeterDetail } from "../../service/workBench" +import { getMeterReadingRouteMeterDetail, getReadingList } from "../../service/workBench" import request from "../../utils/request" -import { alertInfo, alertSuccess, alertError } from "../../utils/index" +import { alertInfo, alertSuccess, alertError, loadingFunc } from "../../utils/index" const { OK } = request; Page({ @@ -9,7 +9,9 @@ Page({ * 页面的初始数据 */ data: { - list: [{time: "2025-05-05 14:10:09", number: 90803.87}] + list: [], + page: 1, + size: 20, }, /** @@ -17,12 +19,21 @@ Page({ */ onLoad(options) { const { meter, park } = options; + const that = this; this.setData({ meter, park + }, () => { + that.refresh(); }) this.getMeterInfo(meter); }, + refresh() { + const that = this; + loadingFunc(async () => { + await that.getList(); + }) + }, async getMeterInfo(id) { const { code, message, data } = await getMeterReadingRouteMeterDetail(id) if (code !== OK) { @@ -31,6 +42,17 @@ Page({ } this.setData({ meterInfo: data }) }, + async getList() { + const { meter, park, page } = this.data; + const { code, message, records: data } = await getReadingList(park, meter, page) + if (code !== OK) { + alertError(message) + return; + } + this.setData({ + list: data + }) + }, /** * 生命周期函数--监听页面初次渲染完成 */ @@ -40,7 +62,8 @@ Page({ handleCreate() { this.setData({ title: "新增记录", - visible: true + visible: true, + type: "create" }) }, handleUpdate() { @@ -49,7 +72,8 @@ Page({ visible: true, time: "2025-09-11", number: 100, - id: "" + id: "", + type: "edit", }) }, handleDelete(e) { diff --git a/pages/readingHistory/index.wxml b/pages/readingHistory/index.wxml index 664201d..a48b788 100644 --- a/pages/readingHistory/index.wxml +++ b/pages/readingHistory/index.wxml @@ -22,10 +22,10 @@ - {{ item.time }} + {{ item.readAt }} - {{ item.number }} + {{ item.overall }} @@ -46,4 +46,13 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/pages/workBench/index.js b/pages/workBench/index.js index 0480db6..2b08c44 100644 --- a/pages/workBench/index.js +++ b/pages/workBench/index.js @@ -5,7 +5,7 @@ Page({ * 页面的初始数据 */ data: { - active: 4 + active: 1 }, /** diff --git a/pages/writeReading/components/readingInfo/index.js b/pages/writeReading/components/readingInfo/index.js index 5271828..b7f5813 100644 --- a/pages/writeReading/components/readingInfo/index.js +++ b/pages/writeReading/components/readingInfo/index.js @@ -30,7 +30,7 @@ Component({ jumpToHistory() { const { meterInfo } = this.data; wx.navigateTo({ - url: `/pages/readingHistory/index?meter=${meterInfo?.id}&park=${meterInfo?.park}`, + url: `/pages/readingHistory/index?meter=${meterInfo?.id}&park=${meterInfo?.parkId}`, }) }, handlePrev() { diff --git a/service/workBench.js b/service/workBench.js index d9a6032..a4b86d0 100644 --- a/service/workBench.js +++ b/service/workBench.js @@ -24,4 +24,10 @@ export const getMeterReadingRouteMeterDetail = async function(id) { // 新建一条抄表记录 export const createReading = async function(park, code, data) { return await POST(`/reading/${park}/${code}`, data); +} + + +// 查询符合指定条件的抄表记录 +export const getReadingList = async function(park, keyword, page) { + return await GET(`/reading/${park}?keyword=${keyword}&page=${page}`,); } \ No newline at end of file -- 2.49.1 From 95e6937d06fa4ba1b4cd8b7c7ec73705a72b799d Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Wed, 17 Sep 2025 16:48:57 +0800 Subject: [PATCH 02/51] =?UTF-8?q?=E6=8A=84=E8=A1=A8=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/DateTimePicker/index.js | 18 +++++++- .../components/editModal/index.js | 32 +++++++++++--- .../components/editModal/index.wxml | 4 +- pages/readingHistory/index.js | 43 ++++++++++++++----- pages/readingHistory/index.json | 3 +- pages/readingHistory/index.wxml | 8 ++-- service/workBench.js | 10 +++++ 7 files changed, 94 insertions(+), 24 deletions(-) diff --git a/components/DateTimePicker/index.js b/components/DateTimePicker/index.js index da3090c..04b5376 100644 --- a/components/DateTimePicker/index.js +++ b/components/DateTimePicker/index.js @@ -8,8 +8,19 @@ Component({ */ properties: { show: Boolean, + // time: String, }, - + // observers: { + // time: function(newValue) { + // console.log("time newValue", newValue) + // if (!newValue) { + // return; + // } + // this.setData({ + // currentDate: new Date(newValue).getTime(), + // }) + // } + // }, /** * 组件的初始数据 */ @@ -20,7 +31,10 @@ Component({ }, lifetimes: { attached() { - + this.setData({ + maxDate: new Date().getTime(), + currentDate: new Date().getTime(), + }) } }, /** diff --git a/pages/readingHistory/components/editModal/index.js b/pages/readingHistory/components/editModal/index.js index b8ab777..a62f1d6 100644 --- a/pages/readingHistory/components/editModal/index.js +++ b/pages/readingHistory/components/editModal/index.js @@ -1,6 +1,6 @@ // pages/workBench/components/tenement/components/bindMeter/index.js // 0015980101 -import { createReading } from "../../../../service/workBench" +import { createReading, updateReading } from "../../../../service/workBench" import { getWorkMeterDetail } from "../../../../service/meter" import { alertInfo, alertSuccess } from "../../../../utils/index"; import request from "../../../../utils/request" @@ -16,14 +16,16 @@ Component({ title: String, timeProps: String, numberProps: String, - id: String, + idProps: String, meter: String, park: String }, observers: { "timeProps": function(newValue) { + // console.log("newValue", newValue) this.setData({ - time: newValue + time: newValue, + // startTime: newValue }) }, "numberProps": function(newValue) { @@ -31,6 +33,9 @@ Component({ number: newValue }) }, + "idProps": function(newValue) { + console.log("new id", newValue) + } }, /** * 组件的初始数据 @@ -65,12 +70,12 @@ Component({ }) }, async onSubmit() { - const { time, number, id, park, meter } = this.data; + const { time, number, idProps, park, meter, timeProps } = this.data; if (time == null || number == null) { alertInfo("请正确填写后保存") return; } - if (!id) { + if (!idProps) { const { code, message } = await createReading(park, meter, { overall: `${number}`, flat: `${number}`, @@ -81,10 +86,23 @@ Component({ return } alertSuccess("录入成功") + this.setData({ number: null, time: null, startTime: null }) } else { - + const { code, message } = await updateReading(park, meter, timeProps, { + overall: `${number}`, + flat: `${number}`, + }) + if (code !== OK) { + alertError(message) + return + } + alertSuccess("录入成功") + this.setData({ number: null, time: null, startTime: null }) } - this.triggerEvent("ok") + const that = this; + setTimeout(() => { + that.triggerEvent("ok") + }, 300) }, dateTimeConfirm(e) { diff --git a/pages/readingHistory/components/editModal/index.wxml b/pages/readingHistory/components/editModal/index.wxml index e699846..fa34bee 100644 --- a/pages/readingHistory/components/editModal/index.wxml +++ b/pages/readingHistory/components/editModal/index.wxml @@ -17,7 +17,7 @@ use-button-slot title-width="100rpx" > - + 选择 @@ -46,7 +46,9 @@ /> diff --git a/pages/readingHistory/index.js b/pages/readingHistory/index.js index a0cc352..7abbcee 100644 --- a/pages/readingHistory/index.js +++ b/pages/readingHistory/index.js @@ -1,5 +1,5 @@ // pages/readingHistory/index.js -import { getMeterReadingRouteMeterDetail, getReadingList } from "../../service/workBench" +import { getMeterReadingRouteMeterDetail, getReadingList, deleteReading } from "../../service/workBench" import request from "../../utils/request" import { alertInfo, alertSuccess, alertError, loadingFunc } from "../../utils/index" const { OK } = request; @@ -43,14 +43,24 @@ Page({ this.setData({ meterInfo: data }) }, async getList() { - const { meter, park, page } = this.data; + const { meter, park, page, size } = this.data; const { code, message, records: data } = await getReadingList(park, meter, page) if (code !== OK) { alertError(message) return; } this.setData({ - list: data + list: data, + totalPage: Math.ceil(data?.length / size) + }) + }, + async onChangePage(e) { + const newPage = e.detail.currentIndex; + const that = this; + this.setData({ + page: newPage + }, () => { + that.getList(); }) }, /** @@ -66,28 +76,41 @@ Page({ type: "create" }) }, - handleUpdate() { + handleUpdate(e) { + const { data } = e.currentTarget.dataset; + console.log("data", data); this.setData({ title: "编辑记录", visible: true, - time: "2025-09-11", - number: 100, - id: "", + time: data.readAt, + number: data.overall, + id: data.id, type: "edit", + }, () => { + console.log("this.data---------", this.data) }) }, handleDelete(e) { - const { id } = e.currentTarget.dataset; + const { data } = e.currentTarget.dataset; + const that = this; wx.showModal({ title: '删除确认', content: '确认要删除这一项记录吗?', - complete: (res) => { + complete: async (res) => { if (res.cancel) { } if (res.confirm) { - + const { code, message } = await deleteReading(data?.id, data?.overall) + if (code !== OK) { + alertError(message) + return + } + alertSuccess("删除成功") + setTimeout(() => { + that.refresh() + }, 300) } } }) diff --git a/pages/readingHistory/index.json b/pages/readingHistory/index.json index f773837..1b8b1af 100644 --- a/pages/readingHistory/index.json +++ b/pages/readingHistory/index.json @@ -4,7 +4,8 @@ "meterInfo": "./components/meterInfo/index", "van-button": "@vant/weapp/button/index", "van-icon": "@vant/weapp/icon/index", - "editModal": "./components/editModal/index" + "editModal": "./components/editModal/index", + "pagination": "/components/pagination/index" }, "navigationStyle": "custom" } \ No newline at end of file diff --git a/pages/readingHistory/index.wxml b/pages/readingHistory/index.wxml index a48b788..027ba6b 100644 --- a/pages/readingHistory/index.wxml +++ b/pages/readingHistory/index.wxml @@ -1,6 +1,6 @@ - +{{id}} @@ -30,7 +30,7 @@ - + @@ -47,12 +47,14 @@ \ No newline at end of file diff --git a/service/workBench.js b/service/workBench.js index a4b86d0..b2261e3 100644 --- a/service/workBench.js +++ b/service/workBench.js @@ -30,4 +30,14 @@ export const createReading = async function(park, code, data) { // 查询符合指定条件的抄表记录 export const getReadingList = async function(park, keyword, page) { return await GET(`/reading/${park}?keyword=${keyword}&page=${page}`,); +} + +// 删除抄表记录 +export const deleteReading = async function(id, overall) { + return await DELETE(`/meter/delete/records/${id}`, { overall }); +} + +// 修改抄表记录 +export const updateReading = async function(park, code, read_at, data) { + return await PUT(`/reading/${park}/${code}/${read_at}`, data); } \ No newline at end of file -- 2.49.1 From 49aeeb05a74d84e2e76d83dafdb215219d33b37d Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Wed, 17 Sep 2025 16:58:48 +0800 Subject: [PATCH 03/51] =?UTF-8?q?=E6=8A=84=E8=A1=A8=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=97=B6=E9=97=B4=E6=A0=BC=E5=BC=8F=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/readingHistory/components/editModal/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/readingHistory/components/editModal/index.js b/pages/readingHistory/components/editModal/index.js index a62f1d6..53ba575 100644 --- a/pages/readingHistory/components/editModal/index.js +++ b/pages/readingHistory/components/editModal/index.js @@ -88,7 +88,7 @@ Component({ alertSuccess("录入成功") this.setData({ number: null, time: null, startTime: null }) } else { - const { code, message } = await updateReading(park, meter, timeProps, { + const { code, message } = await updateReading(park, meter, new Date(timeProps).getTime(), { overall: `${number}`, flat: `${number}`, }) -- 2.49.1 From b61f3287fb0cf54b10196d2aeca9dc96a981e904 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Wed, 17 Sep 2025 17:23:40 +0800 Subject: [PATCH 04/51] =?UTF-8?q?=E6=8A=84=E8=A1=A8=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=88=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/readingHistory/components/editModal/index.js | 5 +++-- pages/readingHistory/index.js | 13 +++++++++++++ pages/readingHistory/index.wxml | 3 ++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/pages/readingHistory/components/editModal/index.js b/pages/readingHistory/components/editModal/index.js index 53ba575..1d66bba 100644 --- a/pages/readingHistory/components/editModal/index.js +++ b/pages/readingHistory/components/editModal/index.js @@ -2,7 +2,7 @@ // 0015980101 import { createReading, updateReading } from "../../../../service/workBench" import { getWorkMeterDetail } from "../../../../service/meter" -import { alertInfo, alertSuccess } from "../../../../utils/index"; +import { alertInfo, alertSuccess, alertError } from "../../../../utils/index"; import request from "../../../../utils/request" import dayjs from "../../../../utils/dayjs" const { OK } = request @@ -88,7 +88,8 @@ Component({ alertSuccess("录入成功") this.setData({ number: null, time: null, startTime: null }) } else { - const { code, message } = await updateReading(park, meter, new Date(timeProps).getTime(), { + console.log("timeProps", timeProps) + const { code, message } = await updateReading(park, meter, new Date(timeProps).getTime() * 1000, { overall: `${number}`, flat: `${number}`, }) diff --git a/pages/readingHistory/index.js b/pages/readingHistory/index.js index 7abbcee..0740b1c 100644 --- a/pages/readingHistory/index.js +++ b/pages/readingHistory/index.js @@ -34,6 +34,18 @@ Page({ await that.getList(); }) }, + onEditFinish() { + this.setData({ + title: null, + visible: null, + time: null, + number: null, + id: null, + readAtTimestamp: null, + type: null, + }) + this.refresh() + }, async getMeterInfo(id) { const { code, message, data } = await getMeterReadingRouteMeterDetail(id) if (code !== OK) { @@ -85,6 +97,7 @@ Page({ time: data.readAt, number: data.overall, id: data.id, + readAtTimestamp: data.readAtTimestamp, type: "edit", }, () => { console.log("this.data---------", this.data) diff --git a/pages/readingHistory/index.wxml b/pages/readingHistory/index.wxml index 027ba6b..14e38f7 100644 --- a/pages/readingHistory/index.wxml +++ b/pages/readingHistory/index.wxml @@ -51,10 +51,11 @@ title="{{title}}" visible="{{visible}}" timeProps="{{time}}" + timeStamp="{{readAtTimestamp}}" numberProps="{{number}}" idProps="{{id}}" park="{{park}}" meter="{{meter}}" - bind:ok="refresh" + bind:ok="onEditFinish" startTime="{{startTime}}" /> \ No newline at end of file -- 2.49.1 From aea85af0f9c430b4c560065def381070d0ec6020 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Thu, 18 Sep 2025 15:34:44 +0800 Subject: [PATCH 05/51] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/readingHistory/index.json | 3 ++- pages/readingHistory/index.wxml | 3 +-- pages/workBench/index.js | 2 +- pages/writeReading/components/meterInfo/index.wxss | 4 ++++ pages/writeReading/components/meterList/index.wxss | 1 + pages/writeReading/components/readingInfo/index.wxml | 4 ++-- pages/writeReading/components/readingInfo/index.wxss | 5 +++++ project.private.config.json | 2 +- 8 files changed, 17 insertions(+), 7 deletions(-) diff --git a/pages/readingHistory/index.json b/pages/readingHistory/index.json index 1b8b1af..ea7b734 100644 --- a/pages/readingHistory/index.json +++ b/pages/readingHistory/index.json @@ -5,7 +5,8 @@ "van-button": "@vant/weapp/button/index", "van-icon": "@vant/weapp/icon/index", "editModal": "./components/editModal/index", - "pagination": "/components/pagination/index" + "pagination": "/components/pagination/index", + "empty": "/components/empty/index" }, "navigationStyle": "custom" } \ No newline at end of file diff --git a/pages/readingHistory/index.wxml b/pages/readingHistory/index.wxml index 14e38f7..bd48965 100644 --- a/pages/readingHistory/index.wxml +++ b/pages/readingHistory/index.wxml @@ -1,6 +1,5 @@ -{{id}} @@ -41,7 +40,7 @@ - + diff --git a/pages/workBench/index.js b/pages/workBench/index.js index 2b08c44..4b09d20 100644 --- a/pages/workBench/index.js +++ b/pages/workBench/index.js @@ -5,7 +5,7 @@ Page({ * 页面的初始数据 */ data: { - active: 1 + active: 0 }, /** diff --git a/pages/writeReading/components/meterInfo/index.wxss b/pages/writeReading/components/meterInfo/index.wxss index 311201b..6a98381 100644 --- a/pages/writeReading/components/meterInfo/index.wxss +++ b/pages/writeReading/components/meterInfo/index.wxss @@ -30,4 +30,8 @@ display: flex; justify-content: space-between; font-size: 30rpx; +} + +.wrapper > .title { + font-size: 32rpx; } \ No newline at end of file diff --git a/pages/writeReading/components/meterList/index.wxss b/pages/writeReading/components/meterList/index.wxss index 17aa19c..4195376 100644 --- a/pages/writeReading/components/meterList/index.wxss +++ b/pages/writeReading/components/meterList/index.wxss @@ -6,6 +6,7 @@ .title { margin-top: 20rpx; + font-size: 32rpx; } .meterListScrollView { diff --git a/pages/writeReading/components/readingInfo/index.wxml b/pages/writeReading/components/readingInfo/index.wxml index 83ff7f5..68c4a97 100644 --- a/pages/writeReading/components/readingInfo/index.wxml +++ b/pages/writeReading/components/readingInfo/index.wxml @@ -61,9 +61,9 @@ /> - + diff --git a/pages/writeReading/components/readingInfo/index.wxss b/pages/writeReading/components/readingInfo/index.wxss index 7278d2c..5b7f38c 100644 --- a/pages/writeReading/components/readingInfo/index.wxss +++ b/pages/writeReading/components/readingInfo/index.wxss @@ -65,6 +65,7 @@ font-size: 42rpx; font-weight: 800; margin-top: 12rpx; + margin-bottom: 12rpx; } .readingNumber .lastTime { font-size: 32rpx; @@ -87,6 +88,10 @@ flex: 1; } +.currentNumber .title { + margin-bottom: 24rpx; +} + .calc { margin-top: 24rpx; } diff --git a/project.private.config.json b/project.private.config.json index f3e205e..9ce3337 100644 --- a/project.private.config.json +++ b/project.private.config.json @@ -26,7 +26,7 @@ { "name": "pages/writeReading/index", "pathName": "pages/writeReading/index", - "query": "id=PR00117566262804481", + "query": "id=PR00118027286020097", "launchMode": "default", "scene": null }, -- 2.49.1 From 345a362c74cad7978f1c9abcc0eeb0593821a3c9 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Fri, 19 Sep 2025 14:37:33 +0800 Subject: [PATCH 06/51] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E6=94=B9=E4=B8=8D=E8=83=BD=E8=BE=93=E5=85=A5?= =?UTF-8?q?=E8=B4=9F=E6=95=B0=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/readingHistory/index.wxss | 5 ++ .../components/meterInfo/index.js | 7 +- .../components/meterInfo/index.json | 3 +- .../components/meterInfo/index.wxml | 20 +++-- .../components/meterInfo/index.wxss | 4 + .../components/meterList/index.js | 3 +- .../components/meterList/index.wxml | 2 +- pages/writeReading/components/photo/index.js | 28 +++++- .../writeReading/components/photo/index.json | 4 +- .../writeReading/components/photo/index.wxml | 6 +- .../components/readingInfo/index.js | 90 ++++++++++++++++--- .../components/readingInfo/index.wxml | 47 +++++----- .../components/readingInfo/index.wxss | 9 +- pages/writeReading/index.js | 11 ++- pages/writeReading/index.wxml | 3 + service/public.js | 22 +++++ service/workBench.js | 4 + 17 files changed, 212 insertions(+), 56 deletions(-) diff --git a/pages/readingHistory/index.wxss b/pages/readingHistory/index.wxss index b5113d5..ba36133 100644 --- a/pages/readingHistory/index.wxss +++ b/pages/readingHistory/index.wxss @@ -11,6 +11,11 @@ page { .historyTitle { display: flex; justify-content: space-between; + align-items: center; +} + +.historyTitle .text { + font-size: 32rpx; } .table { diff --git a/pages/writeReading/components/meterInfo/index.js b/pages/writeReading/components/meterInfo/index.js index 355005b..0e1b6a2 100644 --- a/pages/writeReading/components/meterInfo/index.js +++ b/pages/writeReading/components/meterInfo/index.js @@ -19,6 +19,11 @@ Component({ * 组件的方法列表 */ methods: { - + jumpToHistory() { + const { meterInfo } = this.data; + wx.navigateTo({ + url: `/pages/readingHistory/index?meter=${meterInfo?.id}&park=${meterInfo?.parkId}`, + }) + }, } }) \ No newline at end of file diff --git a/pages/writeReading/components/meterInfo/index.json b/pages/writeReading/components/meterInfo/index.json index 5ec888c..8fe022d 100644 --- a/pages/writeReading/components/meterInfo/index.json +++ b/pages/writeReading/components/meterInfo/index.json @@ -3,6 +3,7 @@ "usingComponents": { "van-tag": "@vant/weapp/tag/index", "van-row": "@vant/weapp/row/index", - "van-col": "@vant/weapp/col/index" + "van-col": "@vant/weapp/col/index", + "van-button": "@vant/weapp/button/index" } } \ No newline at end of file diff --git a/pages/writeReading/components/meterInfo/index.wxml b/pages/writeReading/components/meterInfo/index.wxml index 8321adf..1a0b9e5 100644 --- a/pages/writeReading/components/meterInfo/index.wxml +++ b/pages/writeReading/components/meterInfo/index.wxml @@ -1,12 +1,18 @@ - - 电表列表 + + 电表详情 + + + + 历史记录 + + - 标1东-307 + {{ meterInfo.address }} 华昌宝能收费 @@ -17,7 +23,7 @@ - + 编号 @@ -27,7 +33,7 @@ - + 类型 @@ -43,7 +49,7 @@ - + 状态 @@ -56,7 +62,7 @@ - + 读数 diff --git a/pages/writeReading/components/meterInfo/index.wxss b/pages/writeReading/components/meterInfo/index.wxss index 6a98381..6730339 100644 --- a/pages/writeReading/components/meterInfo/index.wxss +++ b/pages/writeReading/components/meterInfo/index.wxss @@ -34,4 +34,8 @@ .wrapper > .title { font-size: 32rpx; +} + +.titleText { + color: rgb(150, 137, 137); } \ No newline at end of file diff --git a/pages/writeReading/components/meterList/index.js b/pages/writeReading/components/meterList/index.js index c63547a..6cbadf7 100644 --- a/pages/writeReading/components/meterList/index.js +++ b/pages/writeReading/components/meterList/index.js @@ -12,7 +12,8 @@ Component({ properties: { list: Array, active: Number, - meterInfo: Object + meterInfo: Object, + finishNumber: Number, }, observers: { "active,list": function(newActive, newList) { diff --git a/pages/writeReading/components/meterList/index.wxml b/pages/writeReading/components/meterList/index.wxml index e0929e8..d401d12 100644 --- a/pages/writeReading/components/meterList/index.wxml +++ b/pages/writeReading/components/meterList/index.wxml @@ -2,7 +2,7 @@ - 电表列表 + 电表列表 (总计{{list.length}}块,已抄{{finishNumber}}块) diff --git a/pages/writeReading/components/photo/index.js b/pages/writeReading/components/photo/index.js index 08c7f28..c734e53 100644 --- a/pages/writeReading/components/photo/index.js +++ b/pages/writeReading/components/photo/index.js @@ -1,4 +1,8 @@ // pages/writeReading/components/photo/index.js +import { uploadOcrFile } from "../../../../service/public" +import request from "../../../../utils/request" +import { alertError, alertInfo, alertSuccess, loadingFunc } from "../../../../utils/index" +const { OK } = request; Component({ /** @@ -19,6 +23,28 @@ Component({ * 组件的方法列表 */ methods: { - + chooseImage() { + const that = this; + wx.chooseMedia({ + count: 1, + mediaType: ['image'], + sourceType: ['album', 'camera'], + success: async function(res) { + // console.log(res.tempFiles[0].tempFilePath) + // console.log(res.tempFiles[0].size) + loadingFunc(async () => { + const { code, message, data } = await uploadOcrFile(res.tempFiles[0].tempFilePath) + if (code !== OK) { + alertError(message) + return + } + setTimeout(() => { + that.triggerEvent("finish", { number: data?.integer, success: data?.integer != null && data?.integer !== "" }) + }, 100) + }) + + } + }) + } } }) \ No newline at end of file diff --git a/pages/writeReading/components/photo/index.json b/pages/writeReading/components/photo/index.json index e8cfaaf..3b51cdc 100644 --- a/pages/writeReading/components/photo/index.json +++ b/pages/writeReading/components/photo/index.json @@ -1,4 +1,6 @@ { "component": true, - "usingComponents": {} + "usingComponents": { + "van-button": "@vant/weapp/button/index" + } } \ No newline at end of file diff --git a/pages/writeReading/components/photo/index.wxml b/pages/writeReading/components/photo/index.wxml index 1f539de..e4e2fe4 100644 --- a/pages/writeReading/components/photo/index.wxml +++ b/pages/writeReading/components/photo/index.wxml @@ -1,4 +1,8 @@ - 拍照 + 拍照 \ No newline at end of file diff --git a/pages/writeReading/components/readingInfo/index.js b/pages/writeReading/components/readingInfo/index.js index b7f5813..6f00ff7 100644 --- a/pages/writeReading/components/readingInfo/index.js +++ b/pages/writeReading/components/readingInfo/index.js @@ -1,7 +1,7 @@ // pages/writeReading/components/readingInfo/index.js -import { createReading } from "../../../../service/workBench" -import { alertError, alertInfo, alertSuccess } from "../../../../utils/index" +import { createReading, checkReadingFinish, changeMeterRouteStatus } from "../../../../service/workBench" +import { alertError, alertInfo, alertSuccess, wxModal } from "../../../../utils/index" import request from "../../../../utils/request" const { OK } = request @@ -14,25 +14,33 @@ Component({ meterInfo: Object, showLeft: Boolean, showRight: Boolean, + routeId: String + }, + observers: { + "routeId": function(newValue) { + if (!newValue) { + return; + } + console.log("newValue", newValue) + this.checkFinish(newValue) + } }, - /** * 组件的初始数据 */ data: { currentNumber: null }, - + lifetimes: { + attached() { + + } + }, /** * 组件的方法列表 */ methods: { - jumpToHistory() { - const { meterInfo } = this.data; - wx.navigateTo({ - url: `/pages/readingHistory/index?meter=${meterInfo?.id}&park=${meterInfo?.parkId}`, - }) - }, + handlePrev() { this.triggerEvent("prev") }, @@ -41,7 +49,8 @@ Component({ }, onChange(e) { this.setData({ - currentNumber: e.detail ? Number(e.detail) : 0 + currentNumber: e.detail, + calcNumber: isNaN(e.detail) ? 0 : Number(e.detail) }) }, handleClear() { @@ -49,6 +58,28 @@ Component({ currentNumber: null, }) }, + async changeEndStatus() { + const { routeId: id } = this.data; + const { code, message } = await changeMeterRouteStatus({ id, status: 0 }) + if (code !== OK) { + alertError(message) + return + } + alertSuccess("操作成功") + this.init() + }, + onPhotoFinish(e) { + const { number, success } = e.detail; + if (success) { + this.setData({ + currentNumber: `${Number(number)}`, + calcNumber: isNaN(number) ? 0 : Number(number) + }) + alertSuccess("获取成功") + } else { + alertInfo("未能获取到") + } + }, async onSubmit() { const { meterInfo, currentNumber } = this.data; const { parkId, id } = meterInfo; @@ -61,8 +92,39 @@ Component({ return } alertSuccess("录入成功") - this.handleNext() - this.handleClear() + const that = this; + setTimeout(() => { + const isFinished = that.checkFinish() + if (isFinished) { + wx.showModal({ + title: '提示', + content: '所有电表都已抄完,是否结束抄表?', + complete: async (res) => { + if (res.cancel) { + + } + + if (res.confirm) { + await that.changeEndStatus() + wx.navigateBack() + } + } + }) + } else { + that.handleNext() + that.handleClear() + } + }, 300) + + }, + async checkFinish(id) { + const { code, message, data, num } = await checkReadingFinish(id || this.data.routeId); + if (code !== OK) { + alertError(message) + return; + } + this.triggerEvent("finishNumber", num) + return data; }, handleCreateReading() { const { meterInfo, currentNumber } = this.data; @@ -80,7 +142,7 @@ Component({ } if (res.confirm) { - if (meterInfo.consumption < currentNumber) { + if (meterInfo.consumption < currentNumber - meterInfo.overall) { wx.showModal({ title: '提示', content: '本次用电量已抄过历史平均水平的100%,是否确认录入?', diff --git a/pages/writeReading/components/readingInfo/index.wxml b/pages/writeReading/components/readingInfo/index.wxml index 68c4a97..dbc4811 100644 --- a/pages/writeReading/components/readingInfo/index.wxml +++ b/pages/writeReading/components/readingInfo/index.wxml @@ -1,24 +1,21 @@ - + - - - 历史记录 - - + + --> - + + @@ -31,7 +28,7 @@ - + @@ -52,36 +49,40 @@ - + + + + + 表字差 - - {{(currentNumber || 0) - meterInfo.overall}} + + {{(calcNumber || 0) - meterInfo.overall}} - {{(currentNumber || 0) - meterInfo.overall}} + {{(calcNumber || 0) - meterInfo.overall}} - 确定录入 + 确定录入 - 清除记录 + 清除记录 diff --git a/pages/writeReading/components/readingInfo/index.wxss b/pages/writeReading/components/readingInfo/index.wxss index 5b7f38c..55f709c 100644 --- a/pages/writeReading/components/readingInfo/index.wxss +++ b/pages/writeReading/components/readingInfo/index.wxss @@ -46,8 +46,8 @@ } .change { - margin-top: 20rpx; - margin-bottom: 20rpx; + margin-top: 10rpx; + /* margin-bottom: 10rpx; */ display: flex; justify-content: space-between; } @@ -73,7 +73,7 @@ .nextReadingNumber { display: flex; - align-items: bottom; + } .nextReadingNumber .title { @@ -82,6 +82,9 @@ .nextReadingNumber .number { margin-top: 12rpx; + display: flex; + align-items: center; + flex: 1; } .currentNumber { diff --git a/pages/writeReading/index.js b/pages/writeReading/index.js index eb45049..1a02ab6 100644 --- a/pages/writeReading/index.js +++ b/pages/writeReading/index.js @@ -19,6 +19,7 @@ Page({ */ onLoad(options) { const { id } = options; + this.getMeterList(id) }, async getMeterList(id) { @@ -29,7 +30,8 @@ Page({ } this.setData({ meterList: data?.meterRouteDetail || [], - meterInfo: data?.meterRouteDetail?.[0] || {} + meterInfo: data?.meterRouteDetail?.[0] || {}, + routeId: id }) }, changeMeter(e) { @@ -46,7 +48,7 @@ Page({ handleNext() { const { active = 0, meterList } = this.data; let newIndex = active + 1 - if (active > meterList?.length - 1) { + if (newIndex > meterList?.length - 1) { newIndex = meterList?.length - 1 } this.setData({ @@ -58,6 +60,11 @@ Page({ active: this.data.active === 0 ? 0 : this.data.active - 1 }) }, + onSetFinishNumber(e) { + this.setData({ + finishNumber: e.detail, + }) + }, /** * 生命周期函数--监听页面初次渲染完成 */ diff --git a/pages/writeReading/index.wxml b/pages/writeReading/index.wxml index 5d4aabe..6af428b 100644 --- a/pages/writeReading/index.wxml +++ b/pages/writeReading/index.wxml @@ -6,6 +6,7 @@ bind:changeMeterAndIndex="changeMeterAndIndex" active="{{active}}" meterInfo="{{meterInfo}}" + finishNumber="{{onSetFinishNumber}}" /> \ No newline at end of file diff --git a/service/public.js b/service/public.js index 54e2045..e3cf9f8 100644 --- a/service/public.js +++ b/service/public.js @@ -22,6 +22,28 @@ export const uploadFile = (filePath) => { }) } +export const uploadOcrFile = (filePath) => { + const { api } = getConfigByEnv(); + return new Promise((resolve, reject) => { + wx.uploadFile({ + + filePath: filePath, + name: 'data', + url: `${api}/image/to/meter/reading`, + header: { + authorization: 'Bearer ' + wx.getStorageSync("token") + }, + success: (res) => { + console.log("res", res) + resolve(res?.data ? JSON.parse(res?.data) : res?.data); + }, + fail: (err) => { + reject(err); + } + }) + }) +} + export const uploadPublicFile = (filePath) => { const { api } = getConfigByEnv(); return new Promise((resolve, reject) => { diff --git a/service/workBench.js b/service/workBench.js index b2261e3..41eaf08 100644 --- a/service/workBench.js +++ b/service/workBench.js @@ -40,4 +40,8 @@ export const deleteReading = async function(id, overall) { // 修改抄表记录 export const updateReading = async function(park, code, read_at, data) { return await PUT(`/reading/${park}/${code}/${read_at}`, data); +} +// 检查是否抄表完全 +export const checkReadingFinish = async function(id) { + return await GET(`/park/meter/${id}/route/status`,); } \ No newline at end of file -- 2.49.1 From d77af4b78f8f5b9949024f705d9b314bc6a6744b Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Fri, 19 Sep 2025 15:29:26 +0800 Subject: [PATCH 07/51] =?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 --- pages/workBench/components/reading/index.js | 2 +- pages/workBenchOld/index.js | 66 +++++++++++++++++++ pages/workBenchOld/index.json | 6 ++ pages/workBenchOld/index.wxml | 3 + pages/workBenchOld/index.wxss | 1 + .../components/readingInfo/index.js | 12 ++-- 6 files changed, 83 insertions(+), 7 deletions(-) create mode 100644 pages/workBenchOld/index.js create mode 100644 pages/workBenchOld/index.json create mode 100644 pages/workBenchOld/index.wxml create mode 100644 pages/workBenchOld/index.wxss diff --git a/pages/workBench/components/reading/index.js b/pages/workBench/components/reading/index.js index 45709a1..d84a66a 100644 --- a/pages/workBench/components/reading/index.js +++ b/pages/workBench/components/reading/index.js @@ -80,7 +80,7 @@ Component({ alertSuccess("操作成功") this.init() setTimeout(() => { - that.jumpToReading() + that.jumpToReading({ currentTarget: { dataset: { id } } }) }, 500) }, async changeEndStatus(e) { diff --git a/pages/workBenchOld/index.js b/pages/workBenchOld/index.js new file mode 100644 index 0000000..a9919f7 --- /dev/null +++ b/pages/workBenchOld/index.js @@ -0,0 +1,66 @@ +// pages/workBench/index.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/pages/workBenchOld/index.json b/pages/workBenchOld/index.json new file mode 100644 index 0000000..a6d770b --- /dev/null +++ b/pages/workBenchOld/index.json @@ -0,0 +1,6 @@ +{ + "usingComponents": { + "navigator": "/components/navigator/index" + }, + "navigationStyle": "custom" +} \ No newline at end of file diff --git a/pages/workBenchOld/index.wxml b/pages/workBenchOld/index.wxml new file mode 100644 index 0000000..1614ad7 --- /dev/null +++ b/pages/workBenchOld/index.wxml @@ -0,0 +1,3 @@ + + + diff --git a/pages/workBenchOld/index.wxss b/pages/workBenchOld/index.wxss new file mode 100644 index 0000000..c989687 --- /dev/null +++ b/pages/workBenchOld/index.wxss @@ -0,0 +1 @@ +/* pages/workBench/index.wxss */ \ No newline at end of file diff --git a/pages/writeReading/components/readingInfo/index.js b/pages/writeReading/components/readingInfo/index.js index 6f00ff7..186bfd3 100644 --- a/pages/writeReading/components/readingInfo/index.js +++ b/pages/writeReading/components/readingInfo/index.js @@ -21,7 +21,6 @@ Component({ if (!newValue) { return; } - console.log("newValue", newValue) this.checkFinish(newValue) } }, @@ -66,7 +65,7 @@ Component({ return } alertSuccess("操作成功") - this.init() + wx.navigateBack() }, onPhotoFinish(e) { const { number, success } = e.detail; @@ -93,19 +92,20 @@ Component({ } alertSuccess("录入成功") const that = this; - setTimeout(() => { - const isFinished = that.checkFinish() + setTimeout(async () => { + const isFinished = await that.checkFinish() if (isFinished) { + wx.showModal({ title: '提示', - content: '所有电表都已抄完,是否结束抄表?', + content: '所有电表都已抄完,是否返回?', complete: async (res) => { if (res.cancel) { } if (res.confirm) { - await that.changeEndStatus() + // await that.changeEndStatus() wx.navigateBack() } } -- 2.49.1 From 9b00bb35619535eac25375bf20d7a6e2beade436 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Fri, 19 Sep 2025 16:27:29 +0800 Subject: [PATCH 08/51] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8A=84=E8=A1=A8?= =?UTF-8?q?=E8=B7=AF=E7=BA=BF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/editModal/index.js | 3 +- .../components/editModal/index.wxml | 4 +- pages/readingHistory/index.js | 4 +- pages/workBench/components/reading/index.js | 8 ++- pages/workBench/components/reading/index.wxml | 69 ++++++++++--------- pages/workBench/index.js | 2 +- .../components/meterList/index.js | 7 +- .../components/meterList/index.wxml | 2 +- .../components/readingInfo/index.js | 23 +++++-- .../components/readingInfo/index.wxml | 6 +- pages/writeReading/index.wxml | 2 +- service/workBench.js | 2 +- 12 files changed, 79 insertions(+), 53 deletions(-) diff --git a/pages/readingHistory/components/editModal/index.js b/pages/readingHistory/components/editModal/index.js index 1d66bba..8b57046 100644 --- a/pages/readingHistory/components/editModal/index.js +++ b/pages/readingHistory/components/editModal/index.js @@ -79,7 +79,8 @@ Component({ const { code, message } = await createReading(park, meter, { overall: `${number}`, flat: `${number}`, - readAt: time + readAt: time, + source: 1, }) if (code !== OK) { alertError(message) diff --git a/pages/readingHistory/components/editModal/index.wxml b/pages/readingHistory/components/editModal/index.wxml index fa34bee..ba9fcf0 100644 --- a/pages/readingHistory/components/editModal/index.wxml +++ b/pages/readingHistory/components/editModal/index.wxml @@ -17,9 +17,9 @@ use-button-slot title-width="100rpx" > - + - - - 开始抄表 - 去抄表 - 结束抄表 - - + + + + 开始抄表 + 去抄表 + 结束抄表 + + + + diff --git a/pages/workBench/index.js b/pages/workBench/index.js index 4b09d20..b2de2eb 100644 --- a/pages/workBench/index.js +++ b/pages/workBench/index.js @@ -12,7 +12,7 @@ Page({ * 生命周期函数--监听页面加载 */ onLoad(options) { - + }, onTabChange(e) { this.setData({ active: e.detail.index }) diff --git a/pages/writeReading/components/meterList/index.js b/pages/writeReading/components/meterList/index.js index 6cbadf7..4b7b425 100644 --- a/pages/writeReading/components/meterList/index.js +++ b/pages/writeReading/components/meterList/index.js @@ -31,6 +31,9 @@ Component({ maxScrollLeft: newList?.length ? 220 * newList.length - (scrollWidth || 0) - 20 : 0, }) } + }, + "finishNumber": function(newValue) { + console.log("finishNumber0000000000-----------", newValue) } }, /** @@ -54,9 +57,7 @@ Component({ maxScrollLeft:length ? 220 * list.length - (res?.[0]?.width || 0) - 20 : 0, scrollWidth: res?.[0]?.width || 0 }) - }) - - + }) } }, /** diff --git a/pages/writeReading/components/meterList/index.wxml b/pages/writeReading/components/meterList/index.wxml index d401d12..b7b6d2f 100644 --- a/pages/writeReading/components/meterList/index.wxml +++ b/pages/writeReading/components/meterList/index.wxml @@ -2,7 +2,7 @@ - 电表列表 (总计{{list.length}}块,已抄{{finishNumber}}块) + 电表列表 (总计{{list.length}}块,已抄{{list.length - finishNumber}}块) diff --git a/pages/writeReading/components/readingInfo/index.js b/pages/writeReading/components/readingInfo/index.js index 186bfd3..0ab31ed 100644 --- a/pages/writeReading/components/readingInfo/index.js +++ b/pages/writeReading/components/readingInfo/index.js @@ -3,6 +3,7 @@ import { createReading, checkReadingFinish, changeMeterRouteStatus } from "../../../../service/workBench" import { alertError, alertInfo, alertSuccess, wxModal } from "../../../../utils/index" import request from "../../../../utils/request" +import dayjs from "../../../../utils/dayjs" const { OK } = request Component({ @@ -21,6 +22,7 @@ Component({ if (!newValue) { return; } + console.log("---------------"); this.checkFinish(newValue) } }, @@ -28,11 +30,12 @@ Component({ * 组件的初始数据 */ data: { - currentNumber: null + currentNumber: null, + diff: "-" }, lifetimes: { attached() { - + } }, /** @@ -49,7 +52,8 @@ Component({ onChange(e) { this.setData({ currentNumber: e.detail, - calcNumber: isNaN(e.detail) ? 0 : Number(e.detail) + calcNumber: isNaN(Number(e.detail)) ? 0 : Number(e.detail), + diff: isNaN(Number(e.detail)) ? "-" : Number(e.detail) - this.data.meterInfo?.overall }) }, handleClear() { @@ -69,10 +73,12 @@ Component({ }, onPhotoFinish(e) { const { number, success } = e.detail; + const { meterInfo } = this.data; if (success) { this.setData({ currentNumber: `${Number(number)}`, - calcNumber: isNaN(number) ? 0 : Number(number) + calcNumber: isNaN(Number(number)) ? 0 : Number(number), + diff: isNaN(Number(number)) ? "-" : (Number(number || 0) - Number(meterInfo.overall)).toFixed(2) }) alertSuccess("获取成功") } else { @@ -84,7 +90,9 @@ Component({ const { parkId, id } = meterInfo; const { code, message } = await createReading(parkId, id, { overall: `${currentNumber}`, - flat: `${currentNumber}` + flat: `${currentNumber}`, + readAt: dayjs().format("YYYY-MM-DD HH:mm:ss"), + source: 1, }) if (code !== OK) { alertError(message) @@ -107,6 +115,11 @@ Component({ if (res.confirm) { // await that.changeEndStatus() wx.navigateBack() + const pages = getCurrentPages(); + const prevPage = pages[pages.length - 2]; + if (prevPage.init){ + prevPage.init() + } } } }) diff --git a/pages/writeReading/components/readingInfo/index.wxml b/pages/writeReading/components/readingInfo/index.wxml index dbc4811..f3eaf9f 100644 --- a/pages/writeReading/components/readingInfo/index.wxml +++ b/pages/writeReading/components/readingInfo/index.wxml @@ -70,11 +70,11 @@ 表字差 - - {{(calcNumber || 0) - meterInfo.overall}} + + {{diff}} - {{(calcNumber || 0) - meterInfo.overall}} + {{diff}} diff --git a/pages/writeReading/index.wxml b/pages/writeReading/index.wxml index 6af428b..2813761 100644 --- a/pages/writeReading/index.wxml +++ b/pages/writeReading/index.wxml @@ -6,7 +6,7 @@ bind:changeMeterAndIndex="changeMeterAndIndex" active="{{active}}" meterInfo="{{meterInfo}}" - finishNumber="{{onSetFinishNumber}}" + finishNumber="{{finishNumber}}" /> Date: Fri, 19 Sep 2025 17:34:28 +0800 Subject: [PATCH 09/51] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E5=8F=B0=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.json | 8 +- pages/my/index.js | 2 +- .../components/approve/index.js | 279 ++++++++++++++++++ .../components/approve/index.json | 18 ++ .../components/approve/index.wxml | 66 +++++ .../components/approve/index.wxss | 70 +++++ .../components/reharge/index.js | 152 ++++++++++ .../components/reharge/index.json | 10 + .../components/reharge/index.wxml | 50 ++++ .../components/reharge/index.wxss | 1 + .../components/workBenchApprove}/index.js | 12 +- .../components/workBenchApprove/index.json | 12 + .../components/workBenchApprove/index.wxml | 21 ++ .../components/workBenchApprove/index.wxss | 27 ++ .../components/workBenchMeter/index.js | 218 ++++++++++++++ .../components/workBenchMeter/index.json | 19 ++ .../components/workBenchMeter/index.wxml | 102 +++++++ .../components/workBenchMeter/index.wxss | 63 ++++ .../components/workBenchReading/index.js | 144 +++++++++ .../components/workBenchReading/index.json | 17 ++ .../components/workBenchReading/index.wxml | 65 ++++ .../components/workBenchReading/index.wxss | 1 + .../components/bindMeter/index.js | 122 ++++++++ .../components/bindMeter/index.json | 10 + .../components/bindMeter/index.wxml | 121 ++++++++ .../components/bindMeter/index.wxss | 1 + .../components/createTenement/index.js | 103 +++++++ .../components/createTenement/index.json | 8 + .../components/createTenement/index.wxml | 74 +++++ .../components/createTenement/index.wxss | 1 + .../components/kaihu/index.js | 124 ++++++++ .../components/kaihu/index.json | 10 + .../components/kaihu/index.wxml | 100 +++++++ .../components/kaihu/index.wxss | 1 + .../components/unBindMeter/index.js | 101 +++++++ .../components/unBindMeter/index.json | 10 + .../components/unBindMeter/index.wxml | 100 +++++++ .../components/unBindMeter/index.wxss | 1 + .../components/workBenchTenement/index.js | 233 +++++++++++++++ .../components/workBenchTenement/index.json | 16 + .../components/workBenchTenement/index.wxml | 136 +++++++++ .../components/workBenchTenement/index.wxss | 70 +++++ .../components/editModal/index.js | 74 +++++ .../components/editModal/index.json | 8 + .../components/editModal/index.wxml | 34 +++ .../components/editModal/index.wxss | 1 + .../components/updatePhoneModal/index.js | 68 +++++ .../components/updatePhoneModal/index.json | 8 + .../components/updatePhoneModal/index.wxml | 23 ++ .../components/updatePhoneModal/index.wxss | 1 + .../components/workBenchWxUser/index.js | 224 ++++++++++++++ .../components/workBenchWxUser/index.json | 22 ++ .../components/workBenchWxUser/index.wxml | 143 +++++++++ .../components/workBenchWxUser/index.wxss | 71 +++++ pages/workBenchNew/index.js | 103 +++++++ pages/workBenchNew/index.json | 8 + pages/workBenchNew/index.wxml | 77 +++++ pages/workBenchNew/index.wxss | 44 +++ pages/workBenchOld/index.json | 6 - pages/workBenchOld/index.wxml | 3 - pages/workBenchOld/index.wxss | 1 - project.private.config.json | 7 + service/workBench.js | 5 + 63 files changed, 3615 insertions(+), 15 deletions(-) create mode 100644 pages/workBenchNew/components/workBenchApprove/components/approve/index.js create mode 100644 pages/workBenchNew/components/workBenchApprove/components/approve/index.json create mode 100644 pages/workBenchNew/components/workBenchApprove/components/approve/index.wxml create mode 100644 pages/workBenchNew/components/workBenchApprove/components/approve/index.wxss create mode 100644 pages/workBenchNew/components/workBenchApprove/components/reharge/index.js create mode 100644 pages/workBenchNew/components/workBenchApprove/components/reharge/index.json create mode 100644 pages/workBenchNew/components/workBenchApprove/components/reharge/index.wxml create mode 100644 pages/workBenchNew/components/workBenchApprove/components/reharge/index.wxss rename pages/{workBenchOld => workBenchNew/components/workBenchApprove}/index.js (74%) create mode 100644 pages/workBenchNew/components/workBenchApprove/index.json create mode 100644 pages/workBenchNew/components/workBenchApprove/index.wxml create mode 100644 pages/workBenchNew/components/workBenchApprove/index.wxss create mode 100644 pages/workBenchNew/components/workBenchMeter/index.js create mode 100644 pages/workBenchNew/components/workBenchMeter/index.json create mode 100644 pages/workBenchNew/components/workBenchMeter/index.wxml create mode 100644 pages/workBenchNew/components/workBenchMeter/index.wxss create mode 100644 pages/workBenchNew/components/workBenchReading/index.js create mode 100644 pages/workBenchNew/components/workBenchReading/index.json create mode 100644 pages/workBenchNew/components/workBenchReading/index.wxml create mode 100644 pages/workBenchNew/components/workBenchReading/index.wxss create mode 100644 pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.js create mode 100644 pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.json create mode 100644 pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.wxml create mode 100644 pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.wxss create mode 100644 pages/workBenchNew/components/workBenchTenement/components/createTenement/index.js create mode 100644 pages/workBenchNew/components/workBenchTenement/components/createTenement/index.json create mode 100644 pages/workBenchNew/components/workBenchTenement/components/createTenement/index.wxml create mode 100644 pages/workBenchNew/components/workBenchTenement/components/createTenement/index.wxss create mode 100644 pages/workBenchNew/components/workBenchTenement/components/kaihu/index.js create mode 100644 pages/workBenchNew/components/workBenchTenement/components/kaihu/index.json create mode 100644 pages/workBenchNew/components/workBenchTenement/components/kaihu/index.wxml create mode 100644 pages/workBenchNew/components/workBenchTenement/components/kaihu/index.wxss create mode 100644 pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.js create mode 100644 pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.json create mode 100644 pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.wxml create mode 100644 pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.wxss create mode 100644 pages/workBenchNew/components/workBenchTenement/index.js create mode 100644 pages/workBenchNew/components/workBenchTenement/index.json create mode 100644 pages/workBenchNew/components/workBenchTenement/index.wxml create mode 100644 pages/workBenchNew/components/workBenchTenement/index.wxss create mode 100644 pages/workBenchNew/components/workBenchWxUser/components/editModal/index.js create mode 100644 pages/workBenchNew/components/workBenchWxUser/components/editModal/index.json create mode 100644 pages/workBenchNew/components/workBenchWxUser/components/editModal/index.wxml create mode 100644 pages/workBenchNew/components/workBenchWxUser/components/editModal/index.wxss create mode 100644 pages/workBenchNew/components/workBenchWxUser/components/updatePhoneModal/index.js create mode 100644 pages/workBenchNew/components/workBenchWxUser/components/updatePhoneModal/index.json create mode 100644 pages/workBenchNew/components/workBenchWxUser/components/updatePhoneModal/index.wxml create mode 100644 pages/workBenchNew/components/workBenchWxUser/components/updatePhoneModal/index.wxss create mode 100644 pages/workBenchNew/components/workBenchWxUser/index.js create mode 100644 pages/workBenchNew/components/workBenchWxUser/index.json create mode 100644 pages/workBenchNew/components/workBenchWxUser/index.wxml create mode 100644 pages/workBenchNew/components/workBenchWxUser/index.wxss create mode 100644 pages/workBenchNew/index.js create mode 100644 pages/workBenchNew/index.json create mode 100644 pages/workBenchNew/index.wxml create mode 100644 pages/workBenchNew/index.wxss delete mode 100644 pages/workBenchOld/index.json delete mode 100644 pages/workBenchOld/index.wxml delete mode 100644 pages/workBenchOld/index.wxss diff --git a/app.json b/app.json index 78684f3..eb05e51 100644 --- a/app.json +++ b/app.json @@ -23,6 +23,7 @@ "pages/encyclopedia/index", "pages/encyclopediaDetail/index", "pages/workBench/index", + "pages/workBenchNew/index", "pages/webPage/index", "pages/aid/finance/index", "pages/aid/law/index", @@ -36,7 +37,12 @@ "pages/meterList/index", "pages/workBench/components/tenement/components/createTenement/index", "pages/billMeterDetail/index", - "pages/meterBalanceRecord/index" + "pages/meterBalanceRecord/index", + "pages/workBenchNew/components/workBenchMeter/index", + "pages/workBenchNew/components/workBenchTenement/index", + "pages/workBenchNew/components/workBenchApprove/index", + "pages/workBenchNew/components/workBenchWxUser/index", + "pages/workBenchNew/components/workBenchReading/index" ], "subPackages": [ { diff --git a/pages/my/index.js b/pages/my/index.js index e15b67b..aa2a661 100644 --- a/pages/my/index.js +++ b/pages/my/index.js @@ -97,7 +97,7 @@ Page({ }, jumpToWorkBench() { wx.navigateTo({ - url: '/pages/workBench/index', + url: '/pages/workBenchNew/index', }) }, jumpToIntegral() { diff --git a/pages/workBenchNew/components/workBenchApprove/components/approve/index.js b/pages/workBenchNew/components/workBenchApprove/components/approve/index.js new file mode 100644 index 0000000..0a156f7 --- /dev/null +++ b/pages/workBenchNew/components/workBenchApprove/components/approve/index.js @@ -0,0 +1,279 @@ +// pages/workBench/components/recharge/components/waitApprove/index.js +import { + alertInfo, + alertSuccess, + loadingFunc +} from "../../../../../../utils/index"; +import { + getRechargeApproveList, + rechargeApprove +} from "../../../../../../service/recharge" +import request from "../../../../../../utils/request" +import dayjs from "../../../../../../utils/dayjs" +const { + OK +} = request + +// pages/workBench/components/record/index.js +Component({ + + /** + * 组件的属性列表 + */ + properties: { + status: Number + }, + + /** + * 组件的初始数据 + */ + data: { + keyword: "", + keywordTemp: "", + page: 1, + currentActionSheet: null, + actionItems: [{ + name: '查看详细', + value: 'detail' + }], + }, + + lifetimes: { + attached() { + loadingFunc(async () => { + await this.init(); + }) + } + }, + /** + * 组件的方法列表 + */ + methods: { + onParkFocus(e) { + this.setData({ + show: true, + title: "园区", + type: 'park' + }) + }, + onConfirm(e) { + const { + data + } = e.detail; + const that = this; + this.setData({ + parkName: data.name, + park: data.id, + }, () => { + loadingFunc(async () => { + await that.init(); + }) + }) + this.onCancel(); + }, + onSearchKeyword(e) { + const that = this; + that.setData({ + keyword: e.detail + }, () => { + loadingFunc(async () => { + await that.init(); + }) + }) + }, + onChangeKeyword(e) { + this.setData({ + keywordTemp: e.detail + }) + }, + onSearch() { + const that = this; + that.setData({ + keyword: that.data.keywordTemp + }, () => { + loadingFunc(async () => { + await that.init(); + }) + }) + }, + async init() { + const { + page, + keyword, + park, + status + } = this.data; + const { + code, + message, + data, + total + } = await getRechargeApproveList({ + park, + page, + keyword, + status + }) + if (code !== OK) { + alertInfo(message); + return; + } + this.setData({ + list: data.map(item => { + item.topTime = dayjs(item.topTime).format("MM-DD") + return item + }), + total: total, + totalPage: Math.ceil(total / 20) + }) + }, + onChangeReason(e) { + this.setData({ + reason: e.detail, + }) + }, + onApproveClose() { + this.setData({ + reason: "", + approveShow: false, + }) + }, + onApproveConfirm() { + const { + reason, + record + } = this.data; + const that = this; + if (!reason) { + alertInfo("请输入拒绝理由") + return; + } + loadingFunc(async () => { + const { + code, + message + } = await rechargeApprove({ + id: record, + status: 1, + reason + }) + if (code !== OK) { + alertInfo(message) + return; + } + alertSuccess("已拒绝") + that.init(); + that.setData({ + reason: "", + approveShow: false, + record: "", + }) + }) + + }, + handleApprove(e) { + const status = e.currentTarget.dataset.status; + const that = this; + if (status === '1') { + this.setData({ + approveShow: true + }) + return; + } + const { + record, + list + } = this.data; + const item = list.find(ele => ele.id === record) + + wx.showModal({ + title: '提示', + content: `您确认要同意${item?.tenement?.shortName || 当前记录}吗?`, + complete: async (res) => { + if (res.cancel) { + + } + if (res.confirm) { + loadingFunc(async () => { + const { + code, + message + } = await rechargeApprove({ + id: record, + status: 0, + }) + if (code !== OK) { + alertInfo(message) + return; + } + alertSuccess("已同意") + that.init(); + }) + + } + } + }) + }, + + showActionMenu(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({ + currentTarget: { + dataset: { + id + } + } + }); + } + }, + + jumpToDetail(e) { + const { + id + } = e.currentTarget.dataset; + wx.navigateTo({ + url: '/pages/rechargeDetail/index?id=' + id, + }) + }, + 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: "", + }) + }, + onChangeSelectRecharge(e) { + this.setData({ + record: e.detail + }) + } + } +}) \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchApprove/components/approve/index.json b/pages/workBenchNew/components/workBenchApprove/components/approve/index.json new file mode 100644 index 0000000..145ec1b --- /dev/null +++ b/pages/workBenchNew/components/workBenchApprove/components/approve/index.json @@ -0,0 +1,18 @@ +{ + "component": true, + "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-dialog": "@vant/weapp/dialog/index", + "searchSelectWrapper": "/components/searchSelectWrapper/index", + "van-icon": "@vant/weapp/icon/index", + "van-action-sheet": "@vant/weapp/action-sheet/index" + } +} \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchApprove/components/approve/index.wxml b/pages/workBenchNew/components/workBenchApprove/components/approve/index.wxml new file mode 100644 index 0000000..6e2a30a --- /dev/null +++ b/pages/workBenchNew/components/workBenchApprove/components/approve/index.wxml @@ -0,0 +1,66 @@ + + + + + + + + + 同意 + 拒绝 + + + + + + + + 商户名字 + 充值金额 + 状态 + 提交时间 + 操作 + + + + + + + + + + {{ item.tenement.shortName }} + + + {{ item.money }} + + + {{item.orderStatus}} + + + {{item.topTime}} + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchApprove/components/approve/index.wxss b/pages/workBenchNew/components/workBenchApprove/components/approve/index.wxss new file mode 100644 index 0000000..641964d --- /dev/null +++ b/pages/workBenchNew/components/workBenchApprove/components/approve/index.wxss @@ -0,0 +1,70 @@ +/* pages/workBench/components/recharge/components/waitApprove/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/workBenchNew/components/workBenchApprove/components/reharge/index.js b/pages/workBenchNew/components/workBenchApprove/components/reharge/index.js new file mode 100644 index 0000000..c6ccf9b --- /dev/null +++ b/pages/workBenchNew/components/workBenchApprove/components/reharge/index.js @@ -0,0 +1,152 @@ +// pages/workBench/components/recharge/components/reharge/index.js + +import { handleRecharge } from "../../../../../../service/recharge"; +import { alertInfo, alertSuccess, loadingFunc } from "../../../../../../utils/index"; +import request from '../../../../../../utils/request' +const { OK } = request; + +Component({ + + /** + * 组件的属性列表 + */ + properties: { + + }, + + /** + * 组件的初始数据 + */ + data: { + + }, + + /** + * 组件的方法列表 + */ + methods: { + 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) + }) + + } + } +}) \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchApprove/components/reharge/index.json b/pages/workBenchNew/components/workBenchApprove/components/reharge/index.json new file mode 100644 index 0000000..b387e17 --- /dev/null +++ b/pages/workBenchNew/components/workBenchApprove/components/reharge/index.json @@ -0,0 +1,10 @@ +{ + "component": true, + "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" + } +} \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchApprove/components/reharge/index.wxml b/pages/workBenchNew/components/workBenchApprove/components/reharge/index.wxml new file mode 100644 index 0000000..c300e2b --- /dev/null +++ b/pages/workBenchNew/components/workBenchApprove/components/reharge/index.wxml @@ -0,0 +1,50 @@ + + + + + + + + + + + + 确认 + 清空 + + diff --git a/pages/workBenchNew/components/workBenchApprove/components/reharge/index.wxss b/pages/workBenchNew/components/workBenchApprove/components/reharge/index.wxss new file mode 100644 index 0000000..c33c12d --- /dev/null +++ b/pages/workBenchNew/components/workBenchApprove/components/reharge/index.wxss @@ -0,0 +1 @@ +/* pages/workBench/components/recharge/components/reharge/index.wxss */ \ No newline at end of file diff --git a/pages/workBenchOld/index.js b/pages/workBenchNew/components/workBenchApprove/index.js similarity index 74% rename from pages/workBenchOld/index.js rename to pages/workBenchNew/components/workBenchApprove/index.js index a9919f7..b2ba3c8 100644 --- a/pages/workBenchOld/index.js +++ b/pages/workBenchNew/components/workBenchApprove/index.js @@ -1,13 +1,19 @@ -// pages/workBench/index.js +// pages/workBenchNew/components/workBenchApprove/index.js Page({ /** * 页面的初始数据 */ data: { - + active: 0, + segmentedList: ['待审核', '已审核', '充值'], + }, + changeQueryType(e) { + const { type } = e.currentTarget.dataset; + this.setData({ + active: type + }) }, - /** * 生命周期函数--监听页面加载 */ diff --git a/pages/workBenchNew/components/workBenchApprove/index.json b/pages/workBenchNew/components/workBenchApprove/index.json new file mode 100644 index 0000000..b9fefcf --- /dev/null +++ b/pages/workBenchNew/components/workBenchApprove/index.json @@ -0,0 +1,12 @@ +{ + "usingComponents": { + "van-button": "@vant/weapp/button/index", + "segmented": "/components/Segmented/index", + "recharge": "./components/reharge/index", + "approve": "./components/approve/index", + "van-row": "@vant/weapp/row/index", + "van-col": "@vant/weapp/col/index", + "navigator": "/components/navigator/index" + }, + "navigationStyle": "custom" +} \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchApprove/index.wxml b/pages/workBenchNew/components/workBenchApprove/index.wxml new file mode 100644 index 0000000..1339053 --- /dev/null +++ b/pages/workBenchNew/components/workBenchApprove/index.wxml @@ -0,0 +1,21 @@ + + + + + + + 待审核 + + + 已审核 + + + 充值 + + + + + + + + \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchApprove/index.wxss b/pages/workBenchNew/components/workBenchApprove/index.wxss new file mode 100644 index 0000000..cf8d8a0 --- /dev/null +++ b/pages/workBenchNew/components/workBenchApprove/index.wxss @@ -0,0 +1,27 @@ +/* pages/workBench/components/recharge/index.wxss */ +page { + background-color: rgb(228,240,236); + font-size: 32rpx; + } + + + .query { + margin: 20rpx 0rpx; + } + + .typeQueryText { + text-align: center; + padding: 20rpx; + background-color: var(--light-green); + font-size: 32rpx; + } + + .select { + border: 1rpx solid #ccc; + padding: 12rpx; + border-radius: 12rpx; + flex: 1; + display: flex; + justify-content: space-between; + font-size: 30rpx; + } \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchMeter/index.js b/pages/workBenchNew/components/workBenchMeter/index.js new file mode 100644 index 0000000..43e759e --- /dev/null +++ b/pages/workBenchNew/components/workBenchMeter/index.js @@ -0,0 +1,218 @@ +// 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' + }) + }, + onMeterFocus(e) { + const { park } = this.data; + if (!park) { + alertInfo("请先选择园区") + return; + } + this.setData({ + show: true, + title: "电表", + type: 'meter' + }) + }, + onConfirm(e) { + const { data, type } = e.detail; + const that = this; + switch(type) { + case "park": + this.setData({ + parkName: data.name, + park: data.id, + }) + 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 }) + }, + 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/workBenchMeter/index.json b/pages/workBenchNew/components/workBenchMeter/index.json new file mode 100644 index 0000000..62b403a --- /dev/null +++ b/pages/workBenchNew/components/workBenchMeter/index.json @@ -0,0 +1,19 @@ +{ + "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" + }, + "navigationStyle": "custom" +} \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchMeter/index.wxml b/pages/workBenchNew/components/workBenchMeter/index.wxml new file mode 100644 index 0000000..37b1e35 --- /dev/null +++ b/pages/workBenchNew/components/workBenchMeter/index.wxml @@ -0,0 +1,102 @@ + + + + + + + + + + + 合闸 + 拉闸 + + + + + + + {{item.tenement.shortName}} + + {{item.tenement.name}} + + + + + + + + + 商户电表 + + 公摊电表 + + 园区电表 + 表号:{{item.meterNo}} + + + + + + + + {{item.address}} + + SN:{{item.meterSn}} + + + + + + + + 表字:{{item.amount}} + + 余额:{{item.money}} + + + + + + + + 合闸 + 拉闸 + 在线 + 失联 + + + + + + + + + + + + diff --git a/pages/workBenchNew/components/workBenchMeter/index.wxss b/pages/workBenchNew/components/workBenchMeter/index.wxss new file mode 100644 index 0000000..59a86ed --- /dev/null +++ b/pages/workBenchNew/components/workBenchMeter/index.wxss @@ -0,0 +1,63 @@ +/* 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; + } diff --git a/pages/workBenchNew/components/workBenchReading/index.js b/pages/workBenchNew/components/workBenchReading/index.js new file mode 100644 index 0000000..f71ac53 --- /dev/null +++ b/pages/workBenchNew/components/workBenchReading/index.js @@ -0,0 +1,144 @@ +// pages/workBenchNew/components/workBenchReading/index.js +import { getMeterReadingRouteList, changeMeterRouteStatus } from "../../../../service/workBench" +import { alertError, alertSuccess, loadingFunc } from "../../../../utils/index" +import request from "../../../../utils/request" +const { OK } = request + + +Page({ + + /** + * 页面的初始数据 + */ + data: { + park: "", + parkName: "", + }, + onParkFocus(e) { + this.setData({ + show: true, + title: "园区", + type: 'park' + }) + }, + async init() { + const { parkName, park } = this.data; + const { code, message, data } = await getMeterReadingRouteList(parkName) + if (code !== OK) { + alertError(message) + return + } + this.setData({ + list: data + }) + }, + onConfirm(e) { + const { data } = e.detail; + const that = this; + this.setData({ + parkName: data.name, + park: data.id, + }, () => { + loadingFunc(async () => { + await that.init(); + }) + }) + this.onConcal(); + }, + onConcal() { + this.setData({ + show: false, + title: "", + type: "", + }) + }, + jumpToReading(e) { + const { id } = e.currentTarget.dataset; + wx.navigateTo({ + url: `/pages/writeReading/index?id=${id}`, + }) + }, + async changeStartStatus(e) { + const that = this; + const { id } = e.currentTarget.dataset; + const { code, message } = await changeMeterRouteStatus({ id, status: 1 }) + if (code !== OK) { + alertError(message) + return + } + alertSuccess("操作成功") + this.init() + setTimeout(() => { + that.jumpToReading({ currentTarget: { dataset: { id } } }) + }, 500) + }, + async changeEndStatus(e) { + const { id } = e.currentTarget.dataset; + const { code, message } = await changeMeterRouteStatus({ id, status: 0 }) + if (code !== OK) { + alertError(message) + return + } + alertSuccess("操作成功") + this.init() + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + const { parkName } = this.data; + if (!parkName) { + return + } + this.init() + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchReading/index.json b/pages/workBenchNew/components/workBenchReading/index.json new file mode 100644 index 0000000..d707c66 --- /dev/null +++ b/pages/workBenchNew/components/workBenchReading/index.json @@ -0,0 +1,17 @@ +{ + "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-dialog": "@vant/weapp/dialog/index", + "van-cell": "@vant/weapp/cell/index", + "navigator": "/components/navigator/index" + }, + "navigationStyle": "custom" +} \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchReading/index.wxml b/pages/workBenchNew/components/workBenchReading/index.wxml new file mode 100644 index 0000000..6aeca07 --- /dev/null +++ b/pages/workBenchNew/components/workBenchReading/index.wxml @@ -0,0 +1,65 @@ + + + + + 选择 + + + + + + + + + + + + 开始抄表 + 去抄表 + 结束抄表 + + + + + diff --git a/pages/workBenchNew/components/workBenchReading/index.wxss b/pages/workBenchNew/components/workBenchReading/index.wxss new file mode 100644 index 0000000..c6d9511 --- /dev/null +++ b/pages/workBenchNew/components/workBenchReading/index.wxss @@ -0,0 +1 @@ +/* pages/workBenchNew/components/workBenchReading/index.wxss */ \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.js b/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.js new file mode 100644 index 0000000..0ad9d61 --- /dev/null +++ b/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.js @@ -0,0 +1,122 @@ +// pages/workBench/components/tenement/components/bindMeter/index.js +// 0015980101 +import { bindMeter, } from "../../../../../../service/tenement" +import { getWorkMeterDetail } from "../../../../../../service/meter" +import { alertInfo, alertSuccess } from "../../../../../../utils/index"; +import request from "../../../../../../utils/request" +import dayjs from "../../../../../../utils/dayjs" +const { OK } = request +Component({ + + /** + * 组件的属性列表 + */ + properties: { + tenement: String, + tenementName: String, + park: String, + visible: Boolean, + meterId: String, + }, + + /** + * 组件的初始数据 + */ + data: { + dateTimeShow: false, + }, + + /** + * 组件的方法列表 + */ + methods: { + onMeterFocus(e) { + const { park } = this.data; + if (!park) { + alertInfo("请先选择园区") + return; + } + this.setData({ + show: true, + title: "电表", + type: 'meter' + }) + }, + onCancel() { + this.setData({ + show: false, + title: "", + type: "", + }) + // this.triggerEvent("close") + }, + onClose() { + this.setData({ + show: false, + title: "", + type: "", + }) + }, + onChange(e) { + const { name } = e.currentTarget.dataset; + this.setData({ + [name]: e.detail + }) + }, + async onSubmit() { + const { overall, critical, peak, valley, park, tenement, meter, readAt } = this.data; + const { code, message } = await bindMeter( + park, + tenement, + { + code: meter, + overall:overall? Number(overall) : overall, + critical : critical ? Number(critical) : critical, + peak: peak ? Number(peak) : peak, + valley : valley ? Number(valley) : valley, + readAt: readAt || dayjs().format('YYYY-MM-DD HH:mm:ss') + } + ) + if (code !== OK) { + alertInfo(message) + return; + } + alertSuccess("绑定成功") + this.triggerEvent("ok") + }, + onConfirm(e) { + const { type, data } = e.detail; + const that = this; + switch(type) { + case "meter": + this.setData({ + meter: data.id, + meterName: data.address, + show: false, + }) + this.getMeterDetail(data.id); + break; + } + }, + async getMeterDetail(id) { + const { code, message, data } = await getWorkMeterDetail(id) + if (code !== OK) { + alertInfo(message) + return; + } + this.setData({ + overall: Number(data?.overall || 0), + status: data?.breakType ? '合闸' : "分闸" + }) + }, + dateTimeConfirm(e) { + this.setData({ readAt: e.detail.time, dateTimeShow: false }) + }, + dateTimeCancal(e) { + this.setData({ dateTimeShow: false }) + }, + onTimeFocus() { + this.setData({ dateTimeShow: true }) + } + } +}) \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.json b/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.json new file mode 100644 index 0000000..3c2b870 --- /dev/null +++ b/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.json @@ -0,0 +1,10 @@ +{ + "component": true, + "usingComponents": { + "van-dialog": "@vant/weapp/dialog/index", + "search-select": "/components/searchSelect/index", + "van-field": "@vant/weapp/field/index", + "van-button": "@vant/weapp/button/index", + "date-time-picker": "/components/DateTimePicker/index" + } +} \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.wxml b/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.wxml new file mode 100644 index 0000000..0e2ed30 --- /dev/null +++ b/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.wxml @@ -0,0 +1,121 @@ + + + + + + + 选择 + + + + + + 选择 + + + + + + + + + + + + + + diff --git a/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.wxss b/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.wxss new file mode 100644 index 0000000..3fb490f --- /dev/null +++ b/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.wxss @@ -0,0 +1 @@ +/* pages/workBench/components/tenement/components/bindMeter/index.wxss */ \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchTenement/components/createTenement/index.js b/pages/workBenchNew/components/workBenchTenement/components/createTenement/index.js new file mode 100644 index 0000000..da2774b --- /dev/null +++ b/pages/workBenchNew/components/workBenchTenement/components/createTenement/index.js @@ -0,0 +1,103 @@ +// pages/workBench/components/tenement/components/createTenement/index.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + this.setData(options) + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + onBuildingFocus() { + const { park } = this.data; + if (!park) { + alertInfo("请先选择园区") + return; + } + this.setData({ + show: true, + title: "建筑", + type: 'building' + }) + }, + onFeeTypeFocus() { + const { park } = this.data; + if (!park) { + alertInfo("请先选择园区") + return; + } + this.setData({ + show: true, + title: "建筑", + type: 'building' + }) + }, + beforeBack() { + let pages = getCurrentPages(); // 获取当前页面栈 + let prevPage = pages[pages.length - 2]; // 获取上一页 + const { tenement = '', tenementName = '', park = '', parkName = '' } = this.data; + // 修改上一页的数据 + prevPage.setData({ + needBackShow: true, + tenement, + tenementName, + park, + parkName + }); + + }, + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchTenement/components/createTenement/index.json b/pages/workBenchNew/components/workBenchTenement/components/createTenement/index.json new file mode 100644 index 0000000..b97afff --- /dev/null +++ b/pages/workBenchNew/components/workBenchTenement/components/createTenement/index.json @@ -0,0 +1,8 @@ +{ + "usingComponents": { + "search-select": "/components/searchSelect/index", + "van-field": "@vant/weapp/field/index", + "van-button": "@vant/weapp/button/index", + "navigator": "/components/navigator/index" + } +} \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchTenement/components/createTenement/index.wxml b/pages/workBenchNew/components/workBenchTenement/components/createTenement/index.wxml new file mode 100644 index 0000000..e1f06bb --- /dev/null +++ b/pages/workBenchNew/components/workBenchTenement/components/createTenement/index.wxml @@ -0,0 +1,74 @@ + + + + + + + + + + + 选择 + + + + + 选择 + + + + + \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchTenement/components/createTenement/index.wxss b/pages/workBenchNew/components/workBenchTenement/components/createTenement/index.wxss new file mode 100644 index 0000000..45f4ed9 --- /dev/null +++ b/pages/workBenchNew/components/workBenchTenement/components/createTenement/index.wxss @@ -0,0 +1 @@ +/* pages/workBench/components/tenement/components/createTenement/index.wxss */ \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchTenement/components/kaihu/index.js b/pages/workBenchNew/components/workBenchTenement/components/kaihu/index.js new file mode 100644 index 0000000..f51c36d --- /dev/null +++ b/pages/workBenchNew/components/workBenchTenement/components/kaihu/index.js @@ -0,0 +1,124 @@ +// pages/workBench/components/tenement/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; +Component({ + + /** + * 组件的属性列表 + */ + properties: { + park: String, + visible: Boolean, + defaultValue: Object, + editType: String, + title: String, + }, + observers: { + 'defaultValue': function(defaultValue) { + const { fullName, shortName, phone, id, feeType, address, building, buildingName, contact,} = defaultValue; + this.setData({ + name: fullName, + shortName, + phone, id, feeType, address, building, buildingName, contact, + feeTypeName: feeTypeList[feeType] + }) + } + }, + /** + * 组件的初始数据 + */ + data: { + + }, + + /** + * 组件的方法列表 + */ + methods: { + onBuildingFocus() { + const { park } = this.data; + if (!park) { + alertInfo("请先选择园区") + return; + } + this.setData({ + show: true, + title: "建筑", + type: 'building' + }) + }, + onFeeTypeFocus() { + const { park } = this.data; + if (!park) { + alertInfo("请先选择园区") + return; + } + this.setData({ + show: true, + title: "收费类型", + type: 'feeType' + }) + }, + onConfirm(e) { + const { type, data, way } = e.detail; + switch(type) { + case "building": + this.setData({ + building: data.id, + buildingName: data.name, + show: false, + }) + return; + case "feeType": + this.setData({ + feeTypeName: data, + feeType: way, + show: false, + }) + } + }, + + onCancel() { + this.setData({ show: false }) + }, + onClose() { + this.triggerEvent("close") + }, + onChange(e) { + const { name } = e.currentTarget.dataset; + this.setData({ + [name]: e.detail + }) + }, + clear() { + this.setData({ + name: "", shortName: "", address: "", contact: "", phone: "", + building: "", feeType: "", buildingName: "", feeTypeName: "", id, + }) + }, + async onSubmit() { + const { name, shortName, address, contact, phone, building, feeType, park, editType, id } = this.data; + if (editType === "add") { + const { code, message } = await createBackTenement(park, { name, shortName, address, contact, phone, building, feeType }) + if (code !== OK) { + alertInfo(message) + return + } + alertSuccess("开户成功") + this.triggerEvent("ok") + return; + } + const { code, message } = await updateTenementBackInfo(park, id, { name, shortName, address, contact, phone, building, feeType }) + if (code !== OK) { + alertInfo(message) + return; + } + alertSuccess("编辑成功") + this.triggerEvent("ok") + } + }, + +}) \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchTenement/components/kaihu/index.json b/pages/workBenchNew/components/workBenchTenement/components/kaihu/index.json new file mode 100644 index 0000000..f5d5fc8 --- /dev/null +++ b/pages/workBenchNew/components/workBenchTenement/components/kaihu/index.json @@ -0,0 +1,10 @@ +{ + "component": true, + "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" + } +} \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchTenement/components/kaihu/index.wxml b/pages/workBenchNew/components/workBenchTenement/components/kaihu/index.wxml new file mode 100644 index 0000000..04ff43a --- /dev/null +++ b/pages/workBenchNew/components/workBenchTenement/components/kaihu/index.wxml @@ -0,0 +1,100 @@ + + + + + + + + + + + 选择 + + + + + 选择 + + + + + + \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchTenement/components/kaihu/index.wxss b/pages/workBenchNew/components/workBenchTenement/components/kaihu/index.wxss new file mode 100644 index 0000000..d4caef1 --- /dev/null +++ b/pages/workBenchNew/components/workBenchTenement/components/kaihu/index.wxss @@ -0,0 +1 @@ +/* pages/workBench/components/tenement/components/kaihu/index.wxss */ \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.js b/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.js new file mode 100644 index 0000000..ebdda83 --- /dev/null +++ b/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.js @@ -0,0 +1,101 @@ +// pages/workBench/components/tenement/components/bindMeter/index.js + +import { unbindMeter, } from "../../../../../../service/tenement" +import request from "../../../../../../utils/request" +import { alertInfo, alertSuccess } from "../../../../../../utils/index"; +const { OK } = request +import { getWorkMeterDetail } from "../../../../../../service/meter" +import dayjs from "../../../../../../utils/dayjs" + +Component({ + + /** + * 组件的属性列表 + */ + properties: { + tenement: String, + park: String, + tenementName: String, + meterId: String, + meterAddress: String, + visible:Boolean, + }, + observers: { + "meterId": function(newValue) { + this.getMeterDetail(newValue) + } + }, + /** + * 组件的初始数据 + */ + data: { + dateTimeShow: false + }, + + /** + * 组件的方法列表 + */ + methods: { + onMeterFocus(e) { + const { park } = this.data; + if (!park) { + alertInfo("请先选择园区") + return; + } + this.setData({ + show: true, + title: "电表", + type: 'meter' + }) + }, + async getMeterDetail(id) { + const { code, message, data } = await getWorkMeterDetail(id) + if (code !== OK) { + alertInfo(message) + return; + } + this.setData({ + overall: Number(data?.overall || 0), + status: data?.breakType ? '合闸' : "分闸" + }) + }, + onClose() { + this.triggerEvent("close") + }, + onChange(e) { + const { name } = e.currentTarget.dataset; + this.setData({ + [name]: e.detail + }) + }, + async onSubmit() { + const { overall, critical, peak, valley, park, tenement, meterId,readAt } = this.data; + const { code, message, } = await unbindMeter( + park, + tenement, + meterId, + { + overall:overall? Number(overall) : overall, + critical : critical ? Number(critical) : critical, + peak: peak ? Number(peak) : peak, + valley : valley ? Number(valley) : valley, + readAt: readAt || dayjs().format('YYYY-MM-DD HH:mm:ss') + }); + if (code !== OK) { + alertInfo(message) + return + } + alertSuccess("解绑成功") + this.triggerEvent("ok") + }, + dateTimeConfirm(e) { + this.setData({ readAt: e.detail.time, dateTimeShow: false }) + }, + dateTimeCancal(e) { + this.setData({ dateTimeShow: false }) + }, + onTimeFocus() { + this.setData({ dateTimeShow: true }) + } + } +}) \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.json b/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.json new file mode 100644 index 0000000..3c2b870 --- /dev/null +++ b/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.json @@ -0,0 +1,10 @@ +{ + "component": true, + "usingComponents": { + "van-dialog": "@vant/weapp/dialog/index", + "search-select": "/components/searchSelect/index", + "van-field": "@vant/weapp/field/index", + "van-button": "@vant/weapp/button/index", + "date-time-picker": "/components/DateTimePicker/index" + } +} \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.wxml b/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.wxml new file mode 100644 index 0000000..7a9952f --- /dev/null +++ b/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.wxml @@ -0,0 +1,100 @@ + + + + + + + + 选择 + + + + + + + + + + + + diff --git a/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.wxss b/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.wxss new file mode 100644 index 0000000..3fb490f --- /dev/null +++ b/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.wxss @@ -0,0 +1 @@ +/* pages/workBench/components/tenement/components/bindMeter/index.wxss */ \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchTenement/index.js b/pages/workBenchNew/components/workBenchTenement/index.js new file mode 100644 index 0000000..59f3cb2 --- /dev/null +++ b/pages/workBenchNew/components/workBenchTenement/index.js @@ -0,0 +1,233 @@ +// pages/workBenchNew/components/workBenchTenement/index.js +import { alertInfo, alertSuccess } from "../../../../utils/index"; +import { getTenementBackInfo, unbindMeter, } from "../../../../service/tenement" +import { getBackTenementMeters, } from "../../../../service/meter" +import request from "../../../../utils/request" +const { OK } = request + +Page({ + + /** + * 页面的初始数据 + */ + data: { + defaultValue: {}, + editType: "", + meterList: [], + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + onParkFocus(e) { + this.setData({ + show: true, + title: "园区", + type: 'park' + }) + }, + onTenementFocus(e) { + const { park } = this.data; + const that = this; + if (!park) { + alertInfo("请先选择园区") + return; + } + this.setData({ + show: true, + title: "商户", + type: 'tenement' + }) + }, + async init() { + + }, + async getTenementInfo() { + const { tenement, park } = this.data; + if (!tenement || !park) { + return; + } + const { code, message, tenement: data } = await getTenementBackInfo(park, tenement) + if (code !== OK) { + alertInfo(message) + return; + } + this.setData({ + tenementInfo: data, + }) + }, + onConfirm(e) { + const { type, data } = e.detail; + const that = this; + switch(type) { + case "park": + this.setData({ + park: data.id, + parkName: data.name, + show: false, + }) + break; + case "tenement": + this.setData({ + tenement: data.id, + tenementName: data.name, + show: false, + } , () => { + that.getTenementInfo(); + that.getTenementMeters(); + }) + break; + } + }, + onCancel() { + this.setData({ + show: false, + }) + }, + startKh() { + this.setData({ + kaihuVisible: true, + editType: "add", + title: "开户", + defaultValue: { feeType: 0, feeTypeName: "华昌宝能收费" } + }) + }, + startUpdateInfo() { + const { tenementInfo } = this.data; + this.setData({ + kaihuVisible: true, + defaultValue: tenementInfo, + editType: "update", + title: "开户" + }) + }, + async getTenementMeters() { + const { park, tenement } = this.data; + const { code, message, data } = await getBackTenementMeters(park, tenement) + if (code !== OK) { + alertInfo(message) + return + } + this.setData({ meterList: data }); + }, + onKaihuClose() { + this.setData({ + kaihuVisible: false, + defaultValue: {}, + title: "编辑", + editType: "", + }) + }, + onBindClose() { + this.setData({ + bindVisible: false, + }) + }, + async onKaihuConfirm() { + this.getTenementInfo(); + this.onKaihuClose(); + }, + unbind(e) { + const that = this; + const { park, tenement } = this.data; + const { address, id } = e.currentTarget.dataset; + this.setData({ + unbindVisible: true, + meterId: id, + meterAddress: address + }) + // wx.showModal({ + // title: '提示', + // content: `确认要解绑${address}吗?`, + // complete: async (res) => { + // if (res.cancel) { + + // } + + // if (res.confirm) { + // const { code, message, } = await unbindMeter(park, tenement, id); + // if (code !== OK) { + // alertInfo(message) + // return + // } + // alertSuccess("解绑成功") + // that.getTenementMeters(); + // return + // } + // } + // }) + }, + onUnbindOk() { + this.setData({ + unbindVisible: false, + meterId: "", + meterAddress: "", + }) + this.getTenementMeters(); + }, + startBind() { + this.setData({ + bindVisible: true + }) + }, + onBindOk() { + this.setData({ + bindVisible: false, + }) + this.getTenementMeters(); + }, + onTimeConfirm(e) { + + }, + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchTenement/index.json b/pages/workBenchNew/components/workBenchTenement/index.json new file mode 100644 index 0000000..b965871 --- /dev/null +++ b/pages/workBenchNew/components/workBenchTenement/index.json @@ -0,0 +1,16 @@ +{ + "usingComponents": { + "van-field": "@vant/weapp/field/index", + "van-button": "@vant/weapp/button/index", + "search-select": "/components/searchSelect/index", + "van-empty": "@vant/weapp/empty/index", + "kaihu": "./components/kaihu/index", + "bindMeter": "./components/bindMeter/index", + "unBindMeter": "./components/unBindMeter/index", + "van-row": "@vant/weapp/row/index", + "van-col": "@vant/weapp/col/index", + "navigator": "/components/navigator/index", + "searchSelectWrapper": "/components/searchSelectWrapper/index" + }, + "navigationStyle": "custom" +} \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchTenement/index.wxml b/pages/workBenchNew/components/workBenchTenement/index.wxml new file mode 100644 index 0000000..ab67b7e --- /dev/null +++ b/pages/workBenchNew/components/workBenchTenement/index.wxml @@ -0,0 +1,136 @@ + + + + + + + + + 绑定电表 + 修改信息 + + 开户 + + + + + + + + + + + {{tenementInfo.shortName}} + {{tenementInfo.fullName}} + + + 华昌宝能收费 + 物业代收1 + 物业代收2 + 物业代收线损 + {{tenementInfo.contact}} {{tenementInfo.phone}} + + + + + + + + + + + + + + + + + + + {{ item.address }} + {{ item.meterSn }} + + + 解绑 + + + + + + + + + + + + + + + + diff --git a/pages/workBenchNew/components/workBenchTenement/index.wxss b/pages/workBenchNew/components/workBenchTenement/index.wxss new file mode 100644 index 0000000..09f3390 --- /dev/null +++ b/pages/workBenchNew/components/workBenchTenement/index.wxss @@ -0,0 +1,70 @@ +/* pages/workBench/components/tenement/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 .tr { + padding: 20rpx; + box-sizing: border-box; + display: flex; + align-items: center; + flex-wrap: nowrap; +} + +.tbody .th { + word-break: break-all; + text-align: center; +} + +.primaryTextBtn { + color: #1989fa; +} + + +.customTable { + margin: 20rpx; + font-size: 32rpx; +} + +.customTableTile { + background-color: var(--light-green); + box-sizing: border-box; + font-weight: 700; +} + +.tableTitleRow { + padding: 16rpx; +} + +.tableRow { + + padding: 16rpx; + border: 1rpx solid #ccc; + border-top: 0rpx; + font-size: 32rpx; +} + +page { + background-color: rgb(228,240,236); + font-size: 32rpx; + } \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchWxUser/components/editModal/index.js b/pages/workBenchNew/components/workBenchWxUser/components/editModal/index.js new file mode 100644 index 0000000..3fcc8dd --- /dev/null +++ b/pages/workBenchNew/components/workBenchWxUser/components/editModal/index.js @@ -0,0 +1,74 @@ +import { alertInfo, alertSuccess } from "../../../../../../utils/index"; +import { createTenementWxUser } from "../../../../../../service/tenement"; +import request from "../../../../../../utils/request" +const { OK } = request +// pages/workBench/components/account/components/editModal/index.js +Component({ + + /** + * 组件的属性列表 + */ + properties: { + type: String, + title: String, + visible: Boolean, + onCancel: Function, + park: String, + tenement: String, + parentPhone:String, + parentName:String, + parentId:String, + }, + observers: { + "parentName,parentId,parentPhone": function(newName, newId, newPhone) { + this.setData({ data: { name: newName, id: newId, phone: newPhone } }) + }, + }, + /** + * 组件的初始数据 + */ + data: { + data: { name: "", phone: "", id: "" } + }, + + /** + * 组件的方法列表 + */ + methods: { + async onSubmit() { + const { data = {}, tenement, park, type } = this.data; + if (!data.phone) { + alertInfo("请输入手机号") + return + } + if (!data.name) { + alertInfo("请输入昵称") + return + } + const { code, message } = await createTenementWxUser({ ...data, tenement, park }) + if (code !== OK) { + alertInfo(message) + this.triggerEvent("cancel") + return; + } + alertSuccess("操作成功") + this.triggerEvent("ok") + this.setData({ data: {} }) + return; + + + }, + onChange(e) { + const { name } = e.currentTarget.dataset; + const newData = this.data.data; + newData[name] = e.detail; + this.setData({ + data: newData, + }) + }, + onCancel() { + this.setData({ data: {} }) + this.triggerEvent("cancel") + } + } +}) \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchWxUser/components/editModal/index.json b/pages/workBenchNew/components/workBenchWxUser/components/editModal/index.json new file mode 100644 index 0000000..953d7ac --- /dev/null +++ b/pages/workBenchNew/components/workBenchWxUser/components/editModal/index.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "van-dialog": "@vant/weapp/dialog/index", + "search-select": "/components/searchSelect/index", + "van-field": "@vant/weapp/field/index" + } +} \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchWxUser/components/editModal/index.wxml b/pages/workBenchNew/components/workBenchWxUser/components/editModal/index.wxml new file mode 100644 index 0000000..cbf0761 --- /dev/null +++ b/pages/workBenchNew/components/workBenchWxUser/components/editModal/index.wxml @@ -0,0 +1,34 @@ + + + + + + + + + \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchWxUser/components/editModal/index.wxss b/pages/workBenchNew/components/workBenchWxUser/components/editModal/index.wxss new file mode 100644 index 0000000..5ddf238 --- /dev/null +++ b/pages/workBenchNew/components/workBenchWxUser/components/editModal/index.wxss @@ -0,0 +1 @@ +/* pages/workBench/components/account/components/editModal/index.wxss */ \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchWxUser/components/updatePhoneModal/index.js b/pages/workBenchNew/components/workBenchWxUser/components/updatePhoneModal/index.js new file mode 100644 index 0000000..6c15979 --- /dev/null +++ b/pages/workBenchNew/components/workBenchWxUser/components/updatePhoneModal/index.js @@ -0,0 +1,68 @@ +// pages/workBench/components/account/components/updatePhoneModa/index.js +import { alertInfo, alertSuccess } from "../../../../../../utils/index"; +import { updateAdminPhone } from "../../../../../../service/tenement"; +import request from "../../../../../../utils/request" +const { OK } = request +Component({ + + /** + * 组件的属性列表 + */ + properties: { + type: String, + title: String, + visible: Boolean, + onCancel: Function, + park: String, + tenement: String, + parentPhone:String, + parentName:String, + parentId:String, + }, + observers: { + "parentPhone": function (newPhone) { + this.setData({ phone: newPhone }) + } + }, + /** + * 组件的初始数据 + */ + data: { + phone: "", + }, + + /** + * 组件的方法列表 + */ + methods: { + async onSubmit() { + const { phone, tenement, park, type } = this.data; + if (!phone) { + alertInfo("请输入手机号") + return + } + const { code, message } = await updateAdminPhone({tenement, phone: phone }) + if (code !== OK) { + alertInfo(message) + this.triggerEvent("cancel") + return; + } + alertSuccess("操作成功") + this.triggerEvent("ok") + this.setData({ phone: "" }) + return; + + + }, + onChange(e) { + + this.setData({ + phone: e.detail, + }) + }, + onCancel() { + this.setData({ phone: "" }) + this.triggerEvent("cancel") + } + } +}) \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchWxUser/components/updatePhoneModal/index.json b/pages/workBenchNew/components/workBenchWxUser/components/updatePhoneModal/index.json new file mode 100644 index 0000000..953d7ac --- /dev/null +++ b/pages/workBenchNew/components/workBenchWxUser/components/updatePhoneModal/index.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "van-dialog": "@vant/weapp/dialog/index", + "search-select": "/components/searchSelect/index", + "van-field": "@vant/weapp/field/index" + } +} \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchWxUser/components/updatePhoneModal/index.wxml b/pages/workBenchNew/components/workBenchWxUser/components/updatePhoneModal/index.wxml new file mode 100644 index 0000000..b222848 --- /dev/null +++ b/pages/workBenchNew/components/workBenchWxUser/components/updatePhoneModal/index.wxml @@ -0,0 +1,23 @@ + + + + + + + + \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchWxUser/components/updatePhoneModal/index.wxss b/pages/workBenchNew/components/workBenchWxUser/components/updatePhoneModal/index.wxss new file mode 100644 index 0000000..d296a65 --- /dev/null +++ b/pages/workBenchNew/components/workBenchWxUser/components/updatePhoneModal/index.wxss @@ -0,0 +1 @@ +/* pages/workBench/components/account/components/updatePhoneModa/index.wxss */ \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchWxUser/index.js b/pages/workBenchNew/components/workBenchWxUser/index.js new file mode 100644 index 0000000..7525b41 --- /dev/null +++ b/pages/workBenchNew/components/workBenchWxUser/index.js @@ -0,0 +1,224 @@ +// pages/workBenchNew/components/workBenchWxUser/index.js +import request from "../../../../utils/request" +import { getTenementBackInfo, updateUserApp} from "../../../../service/tenement" +import { getBackApproveList, removeUser } from "../../../../service/user" +import { alertInfo, alertSuccess, wxModal } from "../../../../utils/index" +const { OK } = request + +Page({ + + /** + * 页面的初始数据 + */ + data: { + list: [], + tenementInfo: {}, + }, + onParkFocus(e) { + this.setData({ + show: true, + title: "园区", + type: 'park' + }) + }, + onTenementFocus(e) { + const { park } = this.data; + if (!park) { + alertInfo("请先选择园区") + return; + } + this.setData({ + show: true, + title: "商户", + type: 'tenement' + }) + }, + onConfirm(e) { + const that = this; + const { type, data } = e.detail; + switch(type) { + case "park": + this.setData({ + park: data.id, + parkName: data.name, + show: false, + }) + break; + case "tenement": + this.setData({ + tenement: data.id, + tenementName: data.name, + show: false, + }, () => { + that.initUserList(); + that.getTenementInfo(); + }) + break; + } + }, + async setAdmin(e) { + const { id, name } = e.currentTarget.dataset; + const { tenement } = this.data; + await wxModal({ content: `确认要将${name}设置为管理吗?` }) + const { code, message } = await updateUserApp({ userId: id, type: 2, tenement: tenement }) + if (code !== OK) { + alertInfo(message) + return; + } + alertSuccess("转交成功") + this.initUserList(); + this.getTenementInfo(); + }, + onCancel() { + this.setData({ + show: false, + }) + }, + handleDelete(e) { + const { id, name } = e.currentTarget.dataset; + const { tenement } = this.data; + const that = this; + wx.showModal({ + title: '提示', + content: `确认要移除${name}吗?`, + complete: async (res) => { + if (res.cancel) { + + } + + if (res.confirm) { + const { code, message } = await removeUser(id, tenement) + if (code !== OK) { + alertInfo(message) + return; + } + alertSuccess("删除成功") + that.initUserList(); + } + } + }) + }, + onEditConfirm() { + this.initUserList() + this.handleCancel(); + }, + onUpdatePhoneConfirm() { + this.setData({ parentPhone: "", phone: "", type: "", title: "" }) + this.getTenementInfo(); + this.initUserList() + }, + async getTenementInfo() { + const { tenement, park } = this.data; + const { code, message, tenement: data } = await getTenementBackInfo(park, tenement) + if (code !== OK) { + alertInfo(message) + return; + } + this.setData({ + tenementInfo: data, + }) + }, + async initUserList() { + const { tenement } = this.data; + const { code, message, data } = await getBackApproveList(tenement, 1); + if (code !== OK) { + alertInfo(message) + return; + } + this.setData({ + list: data, + }) + }, + handleAddSon() { + this.setData({ + visible: true, + type: "add", + title: "新建子账号" + }) + }, + handleChangeMain() { + const { tenementInfo = {} } = this.data; + this.setData({ + updatePhoneVisible: true, + type: "update", + title: "编辑管理员", + parentPhone: tenementInfo.phone, + // name: main.WechatUserName, + // id: main.WechatUserID, + }) + }, + handleUpdatePhoneCancel() { + this.setData({ + updatePhoneVisible: false, + type: "", + phone: "", + parentPhone: "", + name: "", + id: "", + }) + }, + handleCancel() { + this.setData({ + visible: false, + type: "", + phone: "", + name: "", + id: "", + }) + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchWxUser/index.json b/pages/workBenchNew/components/workBenchWxUser/index.json new file mode 100644 index 0000000..654f431 --- /dev/null +++ b/pages/workBenchNew/components/workBenchWxUser/index.json @@ -0,0 +1,22 @@ +{ + "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", + "edit-modal": "./components/editModal/index", + "updatePhoneModal": "./components/updatePhoneModal/index", + "van-row": "@vant/weapp/row/index", + "van-col": "@vant/weapp/col/index", + "searchSelectWrapper": "/components/searchSelectWrapper/index", + "van-image": "@vant/weapp/image/index", + "navigator": "/components/navigator/index" + }, + "navigationStyle": "custom" +} \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchWxUser/index.wxml b/pages/workBenchNew/components/workBenchWxUser/index.wxml new file mode 100644 index 0000000..3e43d29 --- /dev/null +++ b/pages/workBenchNew/components/workBenchWxUser/index.wxml @@ -0,0 +1,143 @@ + + + + + + + + + + 添加子账号 + 修改主账号 + + + + + + + + + + {{tenementInfo.shortName}} + {{tenementInfo.fullName}} + + + + + + + + + + 华昌宝能收费 + 物业代收1 + 物业代收2 + 物业代收线损 + {{tenementInfo.contact}} {{tenementInfo.phone}} + + + + + + + + + + + + + + + {{ item.WechatUserName }} + {{ item.WechatPhone }} + + + + + + + + + + + + 管理员 + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchWxUser/index.wxss b/pages/workBenchNew/components/workBenchWxUser/index.wxss new file mode 100644 index 0000000..007d999 --- /dev/null +++ b/pages/workBenchNew/components/workBenchWxUser/index.wxss @@ -0,0 +1,71 @@ +/* pages/workBench/components/account/index.wxss */ + +.operateBox { + margin: 20rpx; +} + +.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; + +} + + +.tr { + display: flex; + align-items: center; + flex-wrap: nowrap; +} + +.tbody .th { + word-break: break-all; + text-align: center; +} +.primaryTextBtn { + color: #1989fa; + display: inline-block; +} + +.customTable { + margin: 20rpx; + font-size: 32rpx; +} + +.customTableTile { + background-color: var(--light-green); + box-sizing: border-box; +} + +.tableTitleRow { + padding: 16rpx; + font-weight: 700; +} + +.tableRow { + padding: 16rpx; + border: 1rpx solid #ccc; + border-top: 0rpx; +} + +page { + background-color: rgb(228,240,236); + font-size: 32rpx; + } \ No newline at end of file diff --git a/pages/workBenchNew/index.js b/pages/workBenchNew/index.js new file mode 100644 index 0000000..82adef0 --- /dev/null +++ b/pages/workBenchNew/index.js @@ -0,0 +1,103 @@ +// pages/workBench/index.js +import { getWorkBenchHome } from "../../service/workBench" +import { alertError, alertSuccess, loadingFunc } from "../../utils/index" +import request from "../../utils/request" +const { OK } = request + +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + this.init() + }, + async init() { + const { code, message, data } = await getWorkBenchHome() + if (code !== OK) { + alertError(message) + return + } + this.setData({ data }) + }, + jumpToMeter() { + wx.navigateTo({ + url: '/pages/workBenchNew/components/workBenchMeter/index', + }) + }, + jumpToTenement() { + wx.navigateTo({ + url: '/pages/workBenchNew/components/workBenchTenement/index', + }) + }, + jumpToPay() { + wx.navigateTo({ + url: '/pages/workBenchNew/components/workBenchApprove/index', + }) + }, + jumpToWxUser() { + wx.navigateTo({ + url: '/pages/workBenchNew/components/workBenchWxUser/index', + }) + }, + jumpToRoute() { + wx.navigateTo({ + url: '/pages/workBenchNew/components/workBenchReading/index', + }) + }, + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/pages/workBenchNew/index.json b/pages/workBenchNew/index.json new file mode 100644 index 0000000..4a01b10 --- /dev/null +++ b/pages/workBenchNew/index.json @@ -0,0 +1,8 @@ +{ + "usingComponents": { + "navigator": "/components/navigator/index", + "van-row": "@vant/weapp/row/index", + "van-col": "@vant/weapp/col/index" + }, + "navigationStyle": "custom" +} \ No newline at end of file diff --git a/pages/workBenchNew/index.wxml b/pages/workBenchNew/index.wxml new file mode 100644 index 0000000..632c286 --- /dev/null +++ b/pages/workBenchNew/index.wxml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + 电表信息 + + + {{data.meter}} + + + + + + + + + + + 商户信息 + + + {{data.tenement}} + + + + + + + + + + + 充值审核 + + + {{data.pay}} + + + + + + + + + + + C端账号 + + + {{data.wxUser}} + + + + + + + + + + + 抄表记录录入 + + + {{data.route}} + + + + + \ No newline at end of file diff --git a/pages/workBenchNew/index.wxss b/pages/workBenchNew/index.wxss new file mode 100644 index 0000000..2386856 --- /dev/null +++ b/pages/workBenchNew/index.wxss @@ -0,0 +1,44 @@ +/* pages/workBench/index.wxss */ + +.wrapper { + margin: 20rpx 0rpx; +} + +.contentWrapper { + background-color: white; + width: 100%; + margin-bottom: 24rpx; +} + +.image { + padding: 50rpx 0; + display: flex; + justify-content: center; +} + +.title { + font-size: 32rpx; + font-weight: 600; + /* margin-top: 30rpx; */ + margin-bottom: 20rpx; + text-align: center; +} + +.number { + font-size: 40rpx; + font-weight: 700; + color: var(--deep-green); + text-align: center; + padding-bottom: 30rpx; +} + +.imageContent { + width: 100rpx; + height: 100rpx; + border-radius: 12rpx; + background-color: var(--light-green); +} + +page { + background-color: rgb(242,243,245); +} \ No newline at end of file diff --git a/pages/workBenchOld/index.json b/pages/workBenchOld/index.json deleted file mode 100644 index a6d770b..0000000 --- a/pages/workBenchOld/index.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "usingComponents": { - "navigator": "/components/navigator/index" - }, - "navigationStyle": "custom" -} \ No newline at end of file diff --git a/pages/workBenchOld/index.wxml b/pages/workBenchOld/index.wxml deleted file mode 100644 index 1614ad7..0000000 --- a/pages/workBenchOld/index.wxml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/pages/workBenchOld/index.wxss b/pages/workBenchOld/index.wxss deleted file mode 100644 index c989687..0000000 --- a/pages/workBenchOld/index.wxss +++ /dev/null @@ -1 +0,0 @@ -/* pages/workBench/index.wxss */ \ No newline at end of file diff --git a/project.private.config.json b/project.private.config.json index 9ce3337..294afa9 100644 --- a/project.private.config.json +++ b/project.private.config.json @@ -23,6 +23,13 @@ "condition": { "miniprogram": { "list": [ + { + "name": "pages/workBenchNew/index", + "pathName": "pages/workBenchNew/index", + "query": "", + "launchMode": "default", + "scene": null + }, { "name": "pages/writeReading/index", "pathName": "pages/writeReading/index", diff --git a/service/workBench.js b/service/workBench.js index 5c09b4a..e31833e 100644 --- a/service/workBench.js +++ b/service/workBench.js @@ -44,4 +44,9 @@ export const updateReading = async function(park, code, read_at, data) { // 检查是否抄表完全 export const checkReadingFinish = async function(id) { return await GET(`/park/meter/${id}/route/status`,); +} + +// 获取工作台首页 +export const getWorkBenchHome = async function() { + return await GET(`/workHome/mainPage`,); } \ No newline at end of file -- 2.49.1 From ad4d9323ad3c13bef46ac1e5bd9a4243272d1732 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Mon, 22 Sep 2025 09:48:37 +0800 Subject: [PATCH 10/51] =?UTF-8?q?=E6=8B=8D=E7=85=A7=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E8=A3=81=E5=89=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/readingHistory/index.wxml | 2 +- pages/writeReading/components/photo/index.js | 43 +++++++++++++++---- .../components/readingInfo/index.js | 19 +++++--- pages/writeReading/index.js | 3 +- 4 files changed, 49 insertions(+), 18 deletions(-) diff --git a/pages/readingHistory/index.wxml b/pages/readingHistory/index.wxml index bd48965..0a478cc 100644 --- a/pages/readingHistory/index.wxml +++ b/pages/readingHistory/index.wxml @@ -29,7 +29,7 @@ - + diff --git a/pages/writeReading/components/photo/index.js b/pages/writeReading/components/photo/index.js index c734e53..2c8a2c2 100644 --- a/pages/writeReading/components/photo/index.js +++ b/pages/writeReading/components/photo/index.js @@ -32,16 +32,43 @@ Component({ success: async function(res) { // console.log(res.tempFiles[0].tempFilePath) // console.log(res.tempFiles[0].size) - loadingFunc(async () => { - const { code, message, data } = await uploadOcrFile(res.tempFiles[0].tempFilePath) - if (code !== OK) { - alertError(message) - return + wx.cropImage({ + src: res.tempFiles[0].tempFilePath, // 图片路径 + cropScale: '16:9', // 裁剪比例 + success: function (res) { + if (!/(\.jpg|\.png|\.jpeg)$/.test(res.tempFilePath.toLowerCase())) { + wx.showToast({ + title: '请上传jpg、png或jpeg格式的图片', + icon: 'none', + }); + return; + } + var tempFilePaths = res.tempFilePath; + loadingFunc(async () => { + const { code, message, data } = await uploadOcrFile(tempFilePaths) + if (code !== OK) { + alertError(message) + return + } + setTimeout(() => { + that.triggerEvent("finish", { number: data?.integer, success: data?.integer != null && data?.integer !== "" }) + }, 100) + }) + } - setTimeout(() => { - that.triggerEvent("finish", { number: data?.integer, success: data?.integer != null && data?.integer !== "" }) - }, 100) + }) + + // loadingFunc(async () => { + // const { code, message, data } = await uploadOcrFile(res.tempFiles[0].tempFilePath) + // if (code !== OK) { + // alertError(message) + // return + // } + // setTimeout(() => { + // that.triggerEvent("finish", { number: data?.integer, success: data?.integer != null && data?.integer !== "" }) + // }, 100) + // }) } }) diff --git a/pages/writeReading/components/readingInfo/index.js b/pages/writeReading/components/readingInfo/index.js index 0ab31ed..e4d3a12 100644 --- a/pages/writeReading/components/readingInfo/index.js +++ b/pages/writeReading/components/readingInfo/index.js @@ -53,7 +53,7 @@ Component({ this.setData({ currentNumber: e.detail, calcNumber: isNaN(Number(e.detail)) ? 0 : Number(e.detail), - diff: isNaN(Number(e.detail)) ? "-" : Number(e.detail) - this.data.meterInfo?.overall + diff: isNaN(Number(e.detail)) ? "-" : (Number(e.detail) - this.data.meterInfo?.overall).toFixed(2) }) }, handleClear() { @@ -82,7 +82,7 @@ Component({ }) alertSuccess("获取成功") } else { - alertInfo("未能获取到") + alertInfo("未能识别数字") } }, async onSubmit() { @@ -98,6 +98,11 @@ Component({ alertError(message) return } + this.setData({ + currentNumber: null, + calcNumber: null, + diff: "-" + }) alertSuccess("录入成功") const that = this; setTimeout(async () => { @@ -115,11 +120,11 @@ Component({ if (res.confirm) { // await that.changeEndStatus() wx.navigateBack() - const pages = getCurrentPages(); - const prevPage = pages[pages.length - 2]; - if (prevPage.init){ - prevPage.init() - } + // const pages = getCurrentPages(); + // const prevPage = pages[pages.length - 2]; + // if (prevPage.init){ + // prevPage.init() + // } } } }) diff --git a/pages/writeReading/index.js b/pages/writeReading/index.js index 1a02ab6..82f99ba 100644 --- a/pages/writeReading/index.js +++ b/pages/writeReading/index.js @@ -19,7 +19,6 @@ Page({ */ onLoad(options) { const { id } = options; - this.getMeterList(id) }, async getMeterList(id) { @@ -52,7 +51,7 @@ Page({ newIndex = meterList?.length - 1 } this.setData({ - active: newIndex + active: newIndex, }) }, handlePrev() { -- 2.49.1 From 76746682fa4b9bda102978e2de4fdd301c1908c8 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Mon, 22 Sep 2025 10:56:24 +0800 Subject: [PATCH 11/51] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/readingHistory/components/editModal/index.js | 10 ++++------ pages/readingHistory/index.js | 9 ++++----- pages/readingHistory/index.wxml | 1 + .../workBenchNew/components/workBenchReading/index.js | 8 ++++---- .../components/workBenchReading/index.wxml | 2 ++ pages/writeReading/components/meterInfo/index.js | 6 ++++-- .../components/meterList/components/meterItem/index.js | 3 ++- .../meterList/components/meterItem/index.wxml | 2 +- .../meterList/components/meterItem/index.wxss | 6 +++++- pages/writeReading/components/meterList/index.js | 3 --- pages/writeReading/components/meterList/index.wxml | 1 + pages/writeReading/components/photo/index.js | 2 +- pages/writeReading/components/readingInfo/index.js | 6 +++--- pages/writeReading/index.js | 3 +++ pages/writeReading/index.wxml | 3 ++- service/workBench.js | 4 ++-- 16 files changed, 39 insertions(+), 30 deletions(-) diff --git a/pages/readingHistory/components/editModal/index.js b/pages/readingHistory/components/editModal/index.js index 8b57046..c8fd43c 100644 --- a/pages/readingHistory/components/editModal/index.js +++ b/pages/readingHistory/components/editModal/index.js @@ -18,7 +18,8 @@ Component({ numberProps: String, idProps: String, meter: String, - park: String + park: String, + routeId: String, }, observers: { "timeProps": function(newValue) { @@ -33,9 +34,6 @@ Component({ number: newValue }) }, - "idProps": function(newValue) { - console.log("new id", newValue) - } }, /** * 组件的初始数据 @@ -70,13 +68,13 @@ Component({ }) }, async onSubmit() { - const { time, number, idProps, park, meter, timeProps } = this.data; + const { time, number, idProps, park, meter, timeProps, routeId } = this.data; if (time == null || number == null) { alertInfo("请正确填写后保存") return; } if (!idProps) { - const { code, message } = await createReading(park, meter, { + const { code, message } = await createReading(park, meter, routeId, { overall: `${number}`, flat: `${number}`, readAt: time, diff --git a/pages/readingHistory/index.js b/pages/readingHistory/index.js index 85ea9b9..fe45b04 100644 --- a/pages/readingHistory/index.js +++ b/pages/readingHistory/index.js @@ -19,11 +19,13 @@ Page({ * 生命周期函数--监听页面加载 */ onLoad(options) { - const { meter, park } = options; + console.log("options", options) + const { meter, park, routeId } = options; const that = this; this.setData({ meter, - park + park, + routeId, }, () => { that.refresh(); }) @@ -92,7 +94,6 @@ Page({ }, handleUpdate(e) { const { data } = e.currentTarget.dataset; - console.log("data", data); this.setData({ title: "编辑记录", visible: true, @@ -101,8 +102,6 @@ Page({ id: data.id, readAtTimestamp: data.readAtTimestamp, type: "edit", - }, () => { - console.log("this.data---------", this.data) }) }, handleDelete(e) { diff --git a/pages/readingHistory/index.wxml b/pages/readingHistory/index.wxml index 0a478cc..87650e1 100644 --- a/pages/readingHistory/index.wxml +++ b/pages/readingHistory/index.wxml @@ -57,4 +57,5 @@ meter="{{meter}}" 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 f71ac53..583bec3 100644 --- a/pages/workBenchNew/components/workBenchReading/index.js +++ b/pages/workBenchNew/components/workBenchReading/index.js @@ -60,8 +60,8 @@ Page({ }, async changeStartStatus(e) { const that = this; - const { id } = e.currentTarget.dataset; - const { code, message } = await changeMeterRouteStatus({ id, status: 1 }) + const { id, routeId } = e.currentTarget.dataset; + const { code, message } = await changeMeterRouteStatus({ id, status: 1, routeId }) if (code !== OK) { alertError(message) return @@ -73,8 +73,8 @@ Page({ }, 500) }, async changeEndStatus(e) { - const { id } = e.currentTarget.dataset; - const { code, message } = await changeMeterRouteStatus({ id, status: 0 }) + const { id, routeId } = e.currentTarget.dataset; + const { code, message } = await changeMeterRouteStatus({ id, status: 0, routeId }) if (code !== OK) { alertError(message) return diff --git a/pages/workBenchNew/components/workBenchReading/index.wxml b/pages/workBenchNew/components/workBenchReading/index.wxml index 6aeca07..61831ea 100644 --- a/pages/workBenchNew/components/workBenchReading/index.wxml +++ b/pages/workBenchNew/components/workBenchReading/index.wxml @@ -39,6 +39,7 @@ size="small" type="primary" bind:tap="changeStartStatus" + data-routeId="{{item.readingRouteId}}" custom-style="margin-right: 20rpx;" data-id="{{item.id}}" wx:if="{{item.status === 0}}" @@ -57,6 +58,7 @@ bind:tap="changeEndStatus" data-id="{{item.id}}" wx:if="{{item.status === 1}}" + data-routeId="{{item.readingRouteId}}" > 结束抄表 diff --git a/pages/writeReading/components/meterInfo/index.js b/pages/writeReading/components/meterInfo/index.js index 0e1b6a2..7548545 100644 --- a/pages/writeReading/components/meterInfo/index.js +++ b/pages/writeReading/components/meterInfo/index.js @@ -6,6 +6,7 @@ Component({ */ properties: { meterInfo: Object, + routeId: String, }, /** @@ -20,9 +21,10 @@ Component({ */ methods: { jumpToHistory() { - const { meterInfo } = this.data; + const { meterInfo, routeId } = this.data; + console.log("meterInfo", meterInfo) wx.navigateTo({ - url: `/pages/readingHistory/index?meter=${meterInfo?.id}&park=${meterInfo?.parkId}`, + url: `/pages/readingHistory/index?meter=${meterInfo?.id}&park=${meterInfo?.parkId}&routeId=${routeId}`, }) }, } diff --git a/pages/writeReading/components/meterList/components/meterItem/index.js b/pages/writeReading/components/meterList/components/meterItem/index.js index 8295f38..a34d5fa 100644 --- a/pages/writeReading/components/meterList/components/meterItem/index.js +++ b/pages/writeReading/components/meterList/components/meterItem/index.js @@ -6,7 +6,8 @@ Component({ */ properties: { active: Boolean, - meter: Object + meter: Object, + status: Number, }, observers: { "active": function (newValue) { diff --git a/pages/writeReading/components/meterList/components/meterItem/index.wxml b/pages/writeReading/components/meterList/components/meterItem/index.wxml index e097bcc..bc1bf49 100644 --- a/pages/writeReading/components/meterList/components/meterItem/index.wxml +++ b/pages/writeReading/components/meterList/components/meterItem/index.wxml @@ -1,4 +1,4 @@ - + {{meter.meterAddress}} \ No newline at end of file diff --git a/pages/writeReading/components/meterList/components/meterItem/index.wxss b/pages/writeReading/components/meterList/components/meterItem/index.wxss index c0decfc..f39e216 100644 --- a/pages/writeReading/components/meterList/components/meterItem/index.wxss +++ b/pages/writeReading/components/meterList/components/meterItem/index.wxss @@ -19,6 +19,10 @@ } .deepBg { - background-color: var(--deep-green); + background-color: var(--deep-green) !important; color: white; +} + +.done { + background-color: #ccc; } \ No newline at end of file diff --git a/pages/writeReading/components/meterList/index.js b/pages/writeReading/components/meterList/index.js index 4b7b425..f65e7e7 100644 --- a/pages/writeReading/components/meterList/index.js +++ b/pages/writeReading/components/meterList/index.js @@ -32,9 +32,6 @@ Component({ }) } }, - "finishNumber": function(newValue) { - console.log("finishNumber0000000000-----------", newValue) - } }, /** * 组件的初始数据 diff --git a/pages/writeReading/components/meterList/index.wxml b/pages/writeReading/components/meterList/index.wxml index b7b6d2f..50a2799 100644 --- a/pages/writeReading/components/meterList/index.wxml +++ b/pages/writeReading/components/meterList/index.wxml @@ -22,6 +22,7 @@ bind:click="handleSelect" data-index="{{index}}" data-id="{{item.meterId}}" + status="{{item.status}}" /> diff --git a/pages/writeReading/components/photo/index.js b/pages/writeReading/components/photo/index.js index 2c8a2c2..ae4ca6e 100644 --- a/pages/writeReading/components/photo/index.js +++ b/pages/writeReading/components/photo/index.js @@ -51,7 +51,7 @@ Component({ return } setTimeout(() => { - that.triggerEvent("finish", { number: data?.integer, success: data?.integer != null && data?.integer !== "" }) + that.triggerEvent("finish", { number: data?.integer + "." + data?.decimal || 0, success: data?.integer != null && data?.integer !== "" }) }, 100) }) diff --git a/pages/writeReading/components/readingInfo/index.js b/pages/writeReading/components/readingInfo/index.js index e4d3a12..64840dd 100644 --- a/pages/writeReading/components/readingInfo/index.js +++ b/pages/writeReading/components/readingInfo/index.js @@ -22,7 +22,6 @@ Component({ if (!newValue) { return; } - console.log("---------------"); this.checkFinish(newValue) } }, @@ -86,9 +85,9 @@ Component({ } }, async onSubmit() { - const { meterInfo, currentNumber } = this.data; + const { meterInfo, currentNumber, routeId } = this.data; const { parkId, id } = meterInfo; - const { code, message } = await createReading(parkId, id, { + const { code, message } = await createReading(parkId, id, routeId, { overall: `${currentNumber}`, flat: `${currentNumber}`, readAt: dayjs().format("YYYY-MM-DD HH:mm:ss"), @@ -105,6 +104,7 @@ Component({ }) alertSuccess("录入成功") const that = this; + that.triggerEvent("onSubmit") setTimeout(async () => { const isFinished = await that.checkFinish() if (isFinished) { diff --git a/pages/writeReading/index.js b/pages/writeReading/index.js index 82f99ba..1aaa473 100644 --- a/pages/writeReading/index.js +++ b/pages/writeReading/index.js @@ -44,6 +44,9 @@ Page({ active: e.detail.index, }) }, + onSubmit() { + this.getMeterList(this.data.routeId) + }, handleNext() { const { active = 0, meterList } = this.data; let newIndex = active + 1 diff --git a/pages/writeReading/index.wxml b/pages/writeReading/index.wxml index 2813761..9cc7c60 100644 --- a/pages/writeReading/index.wxml +++ b/pages/writeReading/index.wxml @@ -8,7 +8,7 @@ meterInfo="{{meterInfo}}" finishNumber="{{finishNumber}}" /> - + \ No newline at end of file diff --git a/service/workBench.js b/service/workBench.js index e31833e..a079d17 100644 --- a/service/workBench.js +++ b/service/workBench.js @@ -22,8 +22,8 @@ export const getMeterReadingRouteMeterDetail = async function(id) { } // 新建一条抄表记录 -export const createReading = async function(park, code, data) { - return await POST(`/reading/hand/${park}/${code}`, data); +export const createReading = async function(park, code, routeId, data) { + return await POST(`/reading/hand/${park}/${code}?parkRouteId=${routeId}`, data); } -- 2.49.1 From 195a6d7c48341a5f715ee2ec3a11c446c77e1dce Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Mon, 22 Sep 2025 14:57:20 +0800 Subject: [PATCH 12/51] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BC=A0=E5=8F=82?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/workBenchNew/components/workBenchReading/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/workBenchNew/components/workBenchReading/index.js b/pages/workBenchNew/components/workBenchReading/index.js index 583bec3..8343e19 100644 --- a/pages/workBenchNew/components/workBenchReading/index.js +++ b/pages/workBenchNew/components/workBenchReading/index.js @@ -60,7 +60,7 @@ Page({ }, async changeStartStatus(e) { const that = this; - const { id, routeId } = e.currentTarget.dataset; + const { id, routeid: routeId } = e.currentTarget.dataset; const { code, message } = await changeMeterRouteStatus({ id, status: 1, routeId }) if (code !== OK) { alertError(message) @@ -73,7 +73,7 @@ Page({ }, 500) }, async changeEndStatus(e) { - const { id, routeId } = e.currentTarget.dataset; + const { id, routeid: routeId } = e.currentTarget.dataset; const { code, message } = await changeMeterRouteStatus({ id, status: 0, routeId }) if (code !== OK) { alertError(message) -- 2.49.1 From e64318f174116511abf9894ea99f75b0e947138d Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Tue, 23 Sep 2025 17:18:51 +0800 Subject: [PATCH 13/51] =?UTF-8?q?=E5=8F=AA=E6=9C=89=E6=9C=80=E5=90=8E?= =?UTF-8?q?=E4=B8=80=E6=9D=A1=E6=8A=84=E8=A1=A8=E8=AE=B0=E5=BD=95=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/readingHistory/index.wxml | 2 +- pages/workBenchNew/components/workBenchReading/index.wxml | 2 +- pages/writeReading/components/readingInfo/index.js | 3 +++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/pages/readingHistory/index.wxml b/pages/readingHistory/index.wxml index 87650e1..f554a89 100644 --- a/pages/readingHistory/index.wxml +++ b/pages/readingHistory/index.wxml @@ -28,7 +28,7 @@ - + diff --git a/pages/workBenchNew/components/workBenchReading/index.wxml b/pages/workBenchNew/components/workBenchReading/index.wxml index 61831ea..1017fa0 100644 --- a/pages/workBenchNew/components/workBenchReading/index.wxml +++ b/pages/workBenchNew/components/workBenchReading/index.wxml @@ -40,7 +40,7 @@ type="primary" bind:tap="changeStartStatus" data-routeId="{{item.readingRouteId}}" - custom-style="margin-right: 20rpx;" + custom-style="margin-right: 20rpx;" data-id="{{item.id}}" wx:if="{{item.status === 0}}" > 开始抄表 diff --git a/pages/writeReading/components/readingInfo/index.js b/pages/writeReading/components/readingInfo/index.js index 64840dd..bd192d4 100644 --- a/pages/writeReading/components/readingInfo/index.js +++ b/pages/writeReading/components/readingInfo/index.js @@ -23,6 +23,9 @@ Component({ return; } this.checkFinish(newValue) + }, + "meterInfo": function(newValue) { + } }, /** -- 2.49.1 From a2f92a0959e7117ace063e4c1532288c70a29c97 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Wed, 24 Sep 2025 10:24:52 +0800 Subject: [PATCH 14/51] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/login/index.js | 6 ++++ pages/readingHistory/index.js | 3 +- pages/readingHistory/index.wxml | 6 ++-- .../components/workBenchReading/index.js | 34 +++++++++++++------ .../components/workBenchReading/index.wxml | 7 +++- pages/workBenchNew/index.js | 4 +++ .../components/meterInfo/index.js | 5 +-- .../components/readingInfo/index.js | 3 +- .../components/readingInfo/index.wxml | 9 ++--- pages/writeReading/index.js | 3 +- pages/writeReading/index.wxml | 7 +++- project.private.config.json | 7 ++++ 12 files changed, 70 insertions(+), 24 deletions(-) diff --git a/pages/login/index.js b/pages/login/index.js index 13b8484..cb0d932 100644 --- a/pages/login/index.js +++ b/pages/login/index.js @@ -58,6 +58,12 @@ Page({ const { token, ...user } = data wx.setStorageSync('user', user) wx.setStorageSync('token', data?.token) + // if (user.workStatus) { + // wx.redirectTo({ + // url: '/pages/workBenchNew/index', + // }) + // return + // } wx.switchTab({ url: '/pages/home/index', }) diff --git a/pages/readingHistory/index.js b/pages/readingHistory/index.js index fe45b04..b545ad7 100644 --- a/pages/readingHistory/index.js +++ b/pages/readingHistory/index.js @@ -20,12 +20,13 @@ Page({ */ onLoad(options) { console.log("options", options) - const { meter, park, routeId } = options; + const { meter, park, routeId, disabled } = options; const that = this; this.setData({ meter, park, routeId, + disabled }, () => { that.refresh(); }) diff --git a/pages/readingHistory/index.wxml b/pages/readingHistory/index.wxml index f554a89..3fb5403 100644 --- a/pages/readingHistory/index.wxml +++ b/pages/readingHistory/index.wxml @@ -6,7 +6,7 @@ 抄表记录历史 - 新增记录 + 新增记录 @@ -28,8 +28,8 @@ - - + + diff --git a/pages/workBenchNew/components/workBenchReading/index.js b/pages/workBenchNew/components/workBenchReading/index.js index 8343e19..6f02a68 100644 --- a/pages/workBenchNew/components/workBenchReading/index.js +++ b/pages/workBenchNew/components/workBenchReading/index.js @@ -53,9 +53,9 @@ Page({ }) }, jumpToReading(e) { - const { id } = e.currentTarget.dataset; + const { id, type } = e.currentTarget.dataset; wx.navigateTo({ - url: `/pages/writeReading/index?id=${id}`, + url: `/pages/writeReading/index?id=${id}&type=${type}`, }) }, async changeStartStatus(e) { @@ -73,14 +73,28 @@ Page({ }, 500) }, async changeEndStatus(e) { - const { id, routeid: routeId } = e.currentTarget.dataset; - const { code, message } = await changeMeterRouteStatus({ id, status: 0, routeId }) - if (code !== OK) { - alertError(message) - return - } - alertSuccess("操作成功") - this.init() + const that = this; + wx.showModal({ + title: '提示', + content: '确认要结束吗?', + complete: async (res) => { + if (res.cancel) { + + } + + if (res.confirm) { + const { id, routeid: routeId } = e.currentTarget.dataset; + const { code, message } = await changeMeterRouteStatus({ id, status: 0, routeId }) + if (code !== OK) { + alertError(message) + return + } + alertSuccess("操作成功") + that.init() + } + } + }) + }, /** * 生命周期函数--监听页面加载 diff --git a/pages/workBenchNew/components/workBenchReading/index.wxml b/pages/workBenchNew/components/workBenchReading/index.wxml index 1017fa0..e87ae64 100644 --- a/pages/workBenchNew/components/workBenchReading/index.wxml +++ b/pages/workBenchNew/components/workBenchReading/index.wxml @@ -31,7 +31,10 @@ wx:for="{{list}}" wx:key="id" title="{{item.readingRouteName}}" - label="包含{{item.meterRoute}}个抄表点" + label="包含{{item.meterRoute}}个抄表点" + data-id="{{item.id}}" + data-type="look" + bind:click="jumpToReading" > 开始抄表 去抄表 diff --git a/pages/workBenchNew/index.js b/pages/workBenchNew/index.js index 82adef0..2857dc9 100644 --- a/pages/workBenchNew/index.js +++ b/pages/workBenchNew/index.js @@ -18,6 +18,10 @@ Page({ */ onLoad(options) { this.init() + const user = wx.getStorageSync('user') + this.setData({ + workStatus: !!user.workStatus + }) }, async init() { const { code, message, data } = await getWorkBenchHome() diff --git a/pages/writeReading/components/meterInfo/index.js b/pages/writeReading/components/meterInfo/index.js index 7548545..6bfc26f 100644 --- a/pages/writeReading/components/meterInfo/index.js +++ b/pages/writeReading/components/meterInfo/index.js @@ -7,6 +7,7 @@ Component({ properties: { meterInfo: Object, routeId: String, + disabled: Boolean, }, /** @@ -21,10 +22,10 @@ Component({ */ methods: { jumpToHistory() { - const { meterInfo, routeId } = this.data; + const { meterInfo, routeId, disabled } = this.data; console.log("meterInfo", meterInfo) wx.navigateTo({ - url: `/pages/readingHistory/index?meter=${meterInfo?.id}&park=${meterInfo?.parkId}&routeId=${routeId}`, + url: `/pages/readingHistory/index?meter=${meterInfo?.id}&park=${meterInfo?.parkId}&routeId=${routeId}&disabled=${disabled}`, }) }, } diff --git a/pages/writeReading/components/readingInfo/index.js b/pages/writeReading/components/readingInfo/index.js index bd192d4..1c7aa2d 100644 --- a/pages/writeReading/components/readingInfo/index.js +++ b/pages/writeReading/components/readingInfo/index.js @@ -15,7 +15,8 @@ Component({ meterInfo: Object, showLeft: Boolean, showRight: Boolean, - routeId: String + routeId: String, + disabled: Boolean, }, observers: { "routeId": function(newValue) { diff --git a/pages/writeReading/components/readingInfo/index.wxml b/pages/writeReading/components/readingInfo/index.wxml index f3eaf9f..2233074 100644 --- a/pages/writeReading/components/readingInfo/index.wxml +++ b/pages/writeReading/components/readingInfo/index.wxml @@ -52,14 +52,15 @@ - + + {{ meterInfo.buildingName || "-" }} - 读数 + 楼层 - {{meterInfo.overall}} + {{ meterInfo.floor || "-" }} + diff --git a/pages/writeReading/components/meterInfo/index.wxss b/pages/writeReading/components/meterInfo/index.wxss index 6730339..acbe1a1 100644 --- a/pages/writeReading/components/meterInfo/index.wxss +++ b/pages/writeReading/components/meterInfo/index.wxss @@ -20,6 +20,15 @@ .info .title .address { font-size: 36rpx; font-weight: 800; + flex: 1; + margin-right: 24rpx; + word-break: break-all; +} + +.info .title .meterType { + display: flex; + justify-content: end; + width: 180rpx; } .info .detail { diff --git a/pages/writeReading/components/meterList/index.js b/pages/writeReading/components/meterList/index.js index f65e7e7..b9f8031 100644 --- a/pages/writeReading/components/meterList/index.js +++ b/pages/writeReading/components/meterList/index.js @@ -23,7 +23,7 @@ Component({ if (newActive === 0) { this.setData({ scrollLeft: 0 }) } else if (newActive > 0) { - this.setData({ scrollLeft: 220 * newList.length - 20 }) + this.setData({ scrollLeft: (220 * (newActive) - 20) + "rpx" }) } const { scrollWidth } = this.data; if (scrollWidth) { @@ -114,7 +114,8 @@ Component({ // }); // }, - scrollLeft() { + handleScrollLeft() { + console.log("left--------------") // 向左滚动:减少 scrollLeft,但不能小于0 const newScrollLeft = Math.max(0, this.data.scrollLeft - 200); this.setData({ @@ -122,7 +123,8 @@ Component({ }); }, - scrollRight() { + handleScrollRight() { + console.log("right-----------------") // 向右滚动:增加 scrollLeft,但不能超过 maxScrollLeft const newScrollLeft = Math.min(this.data.maxScrollLeft, this.data.scrollLeft + 200); this.setData({ diff --git a/pages/writeReading/components/meterList/index.wxml b/pages/writeReading/components/meterList/index.wxml index 50a2799..151514e 100644 --- a/pages/writeReading/components/meterList/index.wxml +++ b/pages/writeReading/components/meterList/index.wxml @@ -5,13 +5,13 @@ 电表列表 (总计{{list.length}}块,已抄{{list.length - finishNumber}}块) - + - + - diff --git a/pages/writeReading/components/readingInfo/index.js b/pages/writeReading/components/readingInfo/index.js index 1c7aa2d..f24df5e 100644 --- a/pages/writeReading/components/readingInfo/index.js +++ b/pages/writeReading/components/readingInfo/index.js @@ -26,7 +26,7 @@ Component({ this.checkFinish(newValue) }, "meterInfo": function(newValue) { - + console.log("workStatus------------", newValue) } }, /** diff --git a/pages/writeReading/index.wxml b/pages/writeReading/index.wxml index 1b26358..faa425a 100644 --- a/pages/writeReading/index.wxml +++ b/pages/writeReading/index.wxml @@ -11,8 +11,9 @@ + \ No newline at end of file -- 2.49.1 From 612dd4eac1b0471eaed33b32371d22bf28e377a3 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Sun, 28 Sep 2025 16:29:08 +0800 Subject: [PATCH 16/51] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/DateTimePicker/index.js | 1 - pages/invoiceDetail/index.js | 1 - pages/readingHistory/components/editModal/index.js | 2 -- pages/readingHistory/index.js | 1 - pages/writeReading/components/meterInfo/index.js | 1 - pages/writeReading/components/meterList/index.js | 3 --- pages/writeReading/components/photo/index.js | 2 -- pages/writeReading/components/readingInfo/index.js | 3 --- service/public.js | 1 - utils/request.js | 1 - 10 files changed, 16 deletions(-) diff --git a/components/DateTimePicker/index.js b/components/DateTimePicker/index.js index 04b5376..e0d3960 100644 --- a/components/DateTimePicker/index.js +++ b/components/DateTimePicker/index.js @@ -12,7 +12,6 @@ Component({ }, // observers: { // time: function(newValue) { - // console.log("time newValue", newValue) // if (!newValue) { // return; // } diff --git a/pages/invoiceDetail/index.js b/pages/invoiceDetail/index.js index 8414c5c..0a71aa9 100644 --- a/pages/invoiceDetail/index.js +++ b/pages/invoiceDetail/index.js @@ -87,7 +87,6 @@ Page({ }, fail: function (e) { // alertError("打开失败") - // console.log('打开失败错误为', e) wx.showModal({ title: '提示', content: '打开失败,请复制链接后通过浏览器打开', diff --git a/pages/readingHistory/components/editModal/index.js b/pages/readingHistory/components/editModal/index.js index c8fd43c..4511a8b 100644 --- a/pages/readingHistory/components/editModal/index.js +++ b/pages/readingHistory/components/editModal/index.js @@ -23,7 +23,6 @@ Component({ }, observers: { "timeProps": function(newValue) { - // console.log("newValue", newValue) this.setData({ time: newValue, // startTime: newValue @@ -87,7 +86,6 @@ Component({ alertSuccess("录入成功") this.setData({ number: null, time: null, startTime: null }) } else { - console.log("timeProps", timeProps) const { code, message } = await updateReading(park, meter, new Date(timeProps).getTime() * 1000, { overall: `${number}`, flat: `${number}`, diff --git a/pages/readingHistory/index.js b/pages/readingHistory/index.js index b545ad7..f118ece 100644 --- a/pages/readingHistory/index.js +++ b/pages/readingHistory/index.js @@ -19,7 +19,6 @@ Page({ * 生命周期函数--监听页面加载 */ onLoad(options) { - console.log("options", options) const { meter, park, routeId, disabled } = options; const that = this; this.setData({ diff --git a/pages/writeReading/components/meterInfo/index.js b/pages/writeReading/components/meterInfo/index.js index 6bfc26f..be37581 100644 --- a/pages/writeReading/components/meterInfo/index.js +++ b/pages/writeReading/components/meterInfo/index.js @@ -23,7 +23,6 @@ Component({ methods: { jumpToHistory() { const { meterInfo, routeId, disabled } = this.data; - console.log("meterInfo", meterInfo) wx.navigateTo({ url: `/pages/readingHistory/index?meter=${meterInfo?.id}&park=${meterInfo?.parkId}&routeId=${routeId}&disabled=${disabled}`, }) diff --git a/pages/writeReading/components/meterList/index.js b/pages/writeReading/components/meterList/index.js index b9f8031..9c42753 100644 --- a/pages/writeReading/components/meterList/index.js +++ b/pages/writeReading/components/meterList/index.js @@ -108,14 +108,12 @@ Component({ }, // onScroll(e) { // // 实时更新当前滚动位置,可用于更复杂的边界判断 - // console.log("e", e) // this.setData({ // scrollLeft: e.detail.scrollLeft // }); // }, handleScrollLeft() { - console.log("left--------------") // 向左滚动:减少 scrollLeft,但不能小于0 const newScrollLeft = Math.max(0, this.data.scrollLeft - 200); this.setData({ @@ -124,7 +122,6 @@ Component({ }, handleScrollRight() { - console.log("right-----------------") // 向右滚动:增加 scrollLeft,但不能超过 maxScrollLeft const newScrollLeft = Math.min(this.data.maxScrollLeft, this.data.scrollLeft + 200); this.setData({ diff --git a/pages/writeReading/components/photo/index.js b/pages/writeReading/components/photo/index.js index ae4ca6e..93839f7 100644 --- a/pages/writeReading/components/photo/index.js +++ b/pages/writeReading/components/photo/index.js @@ -30,8 +30,6 @@ Component({ mediaType: ['image'], sourceType: ['album', 'camera'], success: async function(res) { - // console.log(res.tempFiles[0].tempFilePath) - // console.log(res.tempFiles[0].size) wx.cropImage({ src: res.tempFiles[0].tempFilePath, // 图片路径 cropScale: '16:9', // 裁剪比例 diff --git a/pages/writeReading/components/readingInfo/index.js b/pages/writeReading/components/readingInfo/index.js index f24df5e..bd56a56 100644 --- a/pages/writeReading/components/readingInfo/index.js +++ b/pages/writeReading/components/readingInfo/index.js @@ -25,9 +25,6 @@ Component({ } this.checkFinish(newValue) }, - "meterInfo": function(newValue) { - console.log("workStatus------------", newValue) - } }, /** * 组件的初始数据 diff --git a/service/public.js b/service/public.js index e3cf9f8..4b9d431 100644 --- a/service/public.js +++ b/service/public.js @@ -34,7 +34,6 @@ export const uploadOcrFile = (filePath) => { authorization: 'Bearer ' + wx.getStorageSync("token") }, success: (res) => { - console.log("res", res) resolve(res?.data ? JSON.parse(res?.data) : res?.data); }, fail: (err) => { diff --git a/utils/request.js b/utils/request.js index 5418e6f..3a66981 100644 --- a/utils/request.js +++ b/utils/request.js @@ -146,7 +146,6 @@ const CUD = async function (method, uri, data = null) { options.data = data; } const response = await request(options); - console.log("response---------",response) return parseResponse(response); }; -- 2.49.1 From 5e2b2dcfda5d20f52dd2e7e627c31a171ea6cd62 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Fri, 10 Oct 2025 14:10:50 +0800 Subject: [PATCH 17/51] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/login/index.js | 13 +++++++------ pages/workBenchNew/index.js | 5 +++++ pages/workBenchNew/index.json | 3 ++- pages/workBenchNew/index.wxml | 5 ++++- pages/workBenchNew/index.wxss | 4 ++++ utils/request.js | 2 -- 6 files changed, 22 insertions(+), 10 deletions(-) diff --git a/pages/login/index.js b/pages/login/index.js index cb0d932..2dcd977 100644 --- a/pages/login/index.js +++ b/pages/login/index.js @@ -58,12 +58,13 @@ Page({ const { token, ...user } = data wx.setStorageSync('user', user) wx.setStorageSync('token', data?.token) - // if (user.workStatus) { - // wx.redirectTo({ - // url: '/pages/workBenchNew/index', - // }) - // return - // } + console.log("user.workStatus", user.workStatus) + if (user.workStatus) { + wx.redirectTo({ + url: '/pages/workBenchNew/index', + }) + return + } wx.switchTab({ url: '/pages/home/index', }) diff --git a/pages/workBenchNew/index.js b/pages/workBenchNew/index.js index 2857dc9..a5333ab 100644 --- a/pages/workBenchNew/index.js +++ b/pages/workBenchNew/index.js @@ -56,6 +56,11 @@ Page({ url: '/pages/workBenchNew/components/workBenchReading/index', }) }, + jumpToHome() { + wx.switchTab({ + url: '/pages/home/index', + }) + }, /** * 生命周期函数--监听页面初次渲染完成 */ diff --git a/pages/workBenchNew/index.json b/pages/workBenchNew/index.json index 4a01b10..de4f579 100644 --- a/pages/workBenchNew/index.json +++ b/pages/workBenchNew/index.json @@ -2,7 +2,8 @@ "usingComponents": { "navigator": "/components/navigator/index", "van-row": "@vant/weapp/row/index", - "van-col": "@vant/weapp/col/index" + "van-col": "@vant/weapp/col/index", + "van-button": "@vant/weapp/button/index" }, "navigationStyle": "custom" } \ No newline at end of file diff --git a/pages/workBenchNew/index.wxml b/pages/workBenchNew/index.wxml index 632c286..3bc02fb 100644 --- a/pages/workBenchNew/index.wxml +++ b/pages/workBenchNew/index.wxml @@ -1,5 +1,5 @@ - + @@ -74,4 +74,7 @@ + + 回到首页 + \ No newline at end of file diff --git a/pages/workBenchNew/index.wxss b/pages/workBenchNew/index.wxss index 2386856..421c238 100644 --- a/pages/workBenchNew/index.wxss +++ b/pages/workBenchNew/index.wxss @@ -41,4 +41,8 @@ page { background-color: rgb(242,243,245); +} + +.operate { + padding-bottom: 24rpx; } \ No newline at end of file diff --git a/utils/request.js b/utils/request.js index 3a66981..15be215 100644 --- a/utils/request.js +++ b/utils/request.js @@ -44,7 +44,6 @@ const request = async function (options, config = {}) { const setCookie = response.header['set-cookie'] || response.header['Set-Cookie']; if (setCookie) { const cookieMap = {}; - if (localCookieString) { const localCookies = localCookieString.split('; '); for (const localCookie of localCookies) { @@ -93,7 +92,6 @@ const parseResponse = function (response, url) { alertError("服务错误") return } - console.log('url', url,'statusCode', statusCode, 'response.data', response?.data) if (code === 401) { const currentUrl = getPageUrl() -- 2.49.1 From 253572002324108826e60d89767d9a694b973398 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Sat, 11 Oct 2025 15:37:16 +0800 Subject: [PATCH 18/51] =?UTF-8?q?=E7=BB=91=E5=AE=9A=E7=94=B5=E8=A1=A8?= =?UTF-8?q?=E5=92=8C=E8=A7=A3=E7=BB=91=E7=94=B5=E8=A1=A8=E7=9A=84=E6=97=B6?= =?UTF-8?q?=E5=80=99=E5=88=9D=E5=A7=8B=E4=BC=A0=E5=B0=96=E5=B3=B0=E5=B9=B3?= =?UTF-8?q?=E8=B0=B7=E5=92=8C=E4=BF=9D=E5=AD=98=E7=9A=84=E6=97=B6=E5=80=99?= =?UTF-8?q?=E4=BC=A0=E5=B9=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workBenchTenement/components/bindMeter/index.js | 10 ++++++++-- .../workBenchTenement/components/bindMeter/index.wxml | 4 ++-- .../workBenchTenement/components/unBindMeter/index.js | 8 +++++++- .../components/unBindMeter/index.wxml | 4 ++-- .../components/workBenchTenement/index.wxml | 2 ++ 5 files changed, 21 insertions(+), 7 deletions(-) diff --git a/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.js b/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.js index 0ad9d61..caba95d 100644 --- a/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.js +++ b/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.js @@ -64,7 +64,7 @@ Component({ }) }, async onSubmit() { - const { overall, critical, peak, valley, park, tenement, meter, readAt } = this.data; + const { overall, critical, peak, valley, park, tenement, meter, readAt, flat } = this.data; const { code, message } = await bindMeter( park, tenement, @@ -73,6 +73,7 @@ Component({ overall:overall? Number(overall) : overall, critical : critical ? Number(critical) : critical, peak: peak ? Number(peak) : peak, + flat: flat ? Number(flat) : flat, valley : valley ? Number(valley) : valley, readAt: readAt || dayjs().format('YYYY-MM-DD HH:mm:ss') } @@ -106,7 +107,12 @@ Component({ } this.setData({ overall: Number(data?.overall || 0), - status: data?.breakType ? '合闸' : "分闸" + critical: Number(data?.sharp || 0), + peak: Number(data?.peak || 0), + flat: Number(data?.flat || 0), + valley: Number(data?.valley || 0), + meter04kvType: data?.meter04kvType, + status: data?.breakType ? '合闸' : "分闸", }) }, dateTimeConfirm(e) { diff --git a/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.wxml b/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.wxml index 0e2ed30..42bd669 100644 --- a/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.wxml +++ b/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.wxml @@ -82,12 +82,12 @@ type="digit" /> diff --git a/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.js b/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.js index ebdda83..7ee64fc 100644 --- a/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.js +++ b/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.js @@ -56,6 +56,11 @@ Component({ } 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), + meter04kvType: data?.meter04kvType, status: data?.breakType ? '合闸' : "分闸" }) }, @@ -69,7 +74,7 @@ Component({ }) }, async onSubmit() { - const { overall, critical, peak, valley, park, tenement, meterId,readAt } = this.data; + const { overall, critical, peak, valley, park, tenement, meterId,readAt, flat } = this.data; const { code, message, } = await unbindMeter( park, tenement, @@ -78,6 +83,7 @@ Component({ overall:overall? Number(overall) : overall, critical : critical ? Number(critical) : critical, peak: peak ? Number(peak) : peak, + flat: flat ? Number(flat) : flat, valley : valley ? Number(valley) : valley, readAt: readAt || dayjs().format('YYYY-MM-DD HH:mm:ss') }); diff --git a/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.wxml b/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.wxml index 7a9952f..a4c37fc 100644 --- a/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.wxml +++ b/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.wxml @@ -70,12 +70,12 @@ type="number" /> diff --git a/pages/workBenchNew/components/workBenchTenement/index.wxml b/pages/workBenchNew/components/workBenchTenement/index.wxml index ab67b7e..bf34e00 100644 --- a/pages/workBenchNew/components/workBenchTenement/index.wxml +++ b/pages/workBenchNew/components/workBenchTenement/index.wxml @@ -118,6 +118,7 @@ Date: Tue, 28 Oct 2025 14:25:59 +0800 Subject: [PATCH 19/51] =?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}`); } -- 2.49.1 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 20/51] =?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 -- 2.49.1 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 21/51] =?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; } -- 2.49.1 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 22/51] =?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; } -- 2.49.1 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 23/51] =?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 24/51] =?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 @@ - + -- 2.49.1 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 25/51] =?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 -- 2.49.1 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 26/51] =?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) => { -- 2.49.1 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 27/51] =?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 -- 2.49.1 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 28/51] =?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 -- 2.49.1 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 29/51] =?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 @@ - Date: Wed, 12 Nov 2025 08:58:33 +0800 Subject: [PATCH 30/51] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=B7=B1=E8=B0=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- childPackage/pages/billDetail/index.wxml | 2 ++ .../electricQuery/components/reading/index.wxml | 14 ++++++++++++++ childPackage/pages/electricQuery/index.js | 3 ++- pages/billMeterDetail/index.js | 15 ++++++++------- .../tenement/components/bindMeter/index.js | 3 ++- .../tenement/components/bindMeter/index.wxml | 10 ++++++++++ .../tenement/components/unBindMeter/index.js | 3 ++- .../tenement/components/unBindMeter/index.wxml | 10 ++++++++++ .../components/bindMeter/index.js | 4 +++- .../components/bindMeter/index.wxml | 10 ++++++++++ .../components/unBindMeter/index.js | 4 +++- .../components/unBindMeter/index.wxml | 10 ++++++++++ 12 files changed, 76 insertions(+), 12 deletions(-) diff --git a/childPackage/pages/billDetail/index.wxml b/childPackage/pages/billDetail/index.wxml index 443e46a..f69d1a3 100644 --- a/childPackage/pages/billDetail/index.wxml +++ b/childPackage/pages/billDetail/index.wxml @@ -129,6 +129,7 @@ 峰: {{ detail.comprehensive.peakAmount }} 平: {{ detail.comprehensive.flatAmount }} 谷: {{ detail.comprehensive.valleyAmount }} + 深谷: {{ detail.comprehensive.deepValleyAmount }} @@ -141,6 +142,7 @@ 峰: {{ detail.comprehensive.pricePeak }} 平: {{ detail.comprehensive.priceFlat }} 谷: {{ detail.comprehensive.priceValley }} + 深谷: {{ detail.comprehensive.priceDeepValley }} diff --git a/childPackage/pages/electricQuery/components/reading/index.wxml b/childPackage/pages/electricQuery/components/reading/index.wxml index 7aff417..01ca838 100644 --- a/childPackage/pages/electricQuery/components/reading/index.wxml +++ b/childPackage/pages/electricQuery/components/reading/index.wxml @@ -136,6 +136,13 @@ readonly wx:if="{{park.meter04kvType === 1|| park.meter04kvType === 2}}" /> + + 上次抄表记录起,至现在时间内的用电量 diff --git a/childPackage/pages/electricQuery/index.js b/childPackage/pages/electricQuery/index.js index 2e15552..9ae7766 100644 --- a/childPackage/pages/electricQuery/index.js +++ b/childPackage/pages/electricQuery/index.js @@ -41,6 +41,7 @@ Page({ { key: 'peak', title: '峰' }, { key: 'flat', title: '平' }, { key: 'valley', title: '谷' }, + { key: 'deepValley', title: '深谷' }, ], list: [], visible: false, @@ -171,7 +172,7 @@ Page({ const newList = [...times].map(item => { const exist = list.find(ele => ele.time === item) if (exist) { - return Number(exist.critical)+ Number(exist.peak)+Number(exist.flat)+Number(exist.valley); + return Number(exist.critical || 0)+ Number(exist.peak || 0)+Number(exist.flat || 0)+Number(exist.valley || 0)+Number(exist.deepValley || 0); } return null }) diff --git a/pages/billMeterDetail/index.js b/pages/billMeterDetail/index.js index a768265..6fd67ec 100644 --- a/pages/billMeterDetail/index.js +++ b/pages/billMeterDetail/index.js @@ -13,6 +13,7 @@ Page({ { title: '峰',renderBody: (item) => { return item?.peak } }, { title: '平',renderBody: (item) => { return item?.flat } }, { title: '谷',renderBody: (item) => { return item?.valley } }, + { title: '深谷',renderBody: (item) => { return item?.deepValley } }, ], list: [] }, @@ -25,13 +26,13 @@ Page({ this.setData({ data: data, list: [ - { type: "起码", sharp: data.startSharp, peak: data.startPeak, flat: data.startFlat, valley: data.startValley }, - { type: "止码", sharp: data.endSharp, peak: data.endPeak, flat: data.endFlat, valley: data.endValley }, - { type: "退补电量", sharp: data.refundSharp, peak: data.refundPeak, flat: data.refundFlat, valley: data.refundValley }, - { type: "从表电量", sharp: getRoundNumber(data.nestSharp), peak: getRoundNumber(data.nestPeak), flat: getRoundNumber(data.nestFlat), valley: getRoundNumber(data.nestValley) }, - { type: "电度电量", sharp: getRoundNumber(data?.critical?.amount), peak: getRoundNumber(data.peak?.amount), flat: getRoundNumber(data.flat?.amount), valley: getRoundNumber(data.valley?.amount) }, - { type: "分时单价", sharp: data.critical?.price, peak: data.peak?.price, flat: data.flat?.price, valley: data.valley?.price }, - { type: "电费", sharp: getRoundNumber(data.chargeSharp), peak: getRoundNumber(data.chargePeak), flat: getRoundNumber(data.chargeFlat), valley: getRoundNumber(data.chargeValley) }, + { type: "起码", sharp: data.startSharp, peak: data.startPeak, flat: data.startFlat, valley: data.startValley, deepValley: data.startDeepValley }, + { type: "止码", sharp: data.endSharp, peak: data.endPeak, flat: data.endFlat, valley: data.endValley, deepValley: data.endDeepValley }, + { type: "退补电量", sharp: data.refundSharp, peak: data.refundPeak, flat: data.refundFlat, valley: data.refundValley, deepValley: data.refundDeepValley }, + { type: "从表电量", sharp: getRoundNumber(data.nestSharp), peak: getRoundNumber(data.nestPeak), flat: getRoundNumber(data.nestFlat), valley: getRoundNumber(data.nestValley), deepValley: getRoundNumber(data.nestDeepValley) }, + { type: "电度电量", sharp: getRoundNumber(data?.critical?.amount), peak: getRoundNumber(data.peak?.amount), flat: getRoundNumber(data.flat?.amount), valley: getRoundNumber(data.valley?.amount), deepValley: getRoundNumber(data?.deepValley?.amount) }, + { type: "分时单价", sharp: data.critical?.price, peak: data.peak?.price, flat: data.flat?.price, valley: data.valley?.price , valley: data.valley?.price, deepValley: data.deepValley?.price}, + { type: "电费", sharp: getRoundNumber(data.chargeSharp), peak: getRoundNumber(data.chargePeak), flat: getRoundNumber(data.chargeFlat), valley: getRoundNumber(data.chargeValley), deepValley: getRoundNumber(data.chargeDeepValley) }, ] }) }, diff --git a/pages/workBench/components/tenement/components/bindMeter/index.js b/pages/workBench/components/tenement/components/bindMeter/index.js index 0ad9d61..3be41b4 100644 --- a/pages/workBench/components/tenement/components/bindMeter/index.js +++ b/pages/workBench/components/tenement/components/bindMeter/index.js @@ -64,7 +64,7 @@ Component({ }) }, async onSubmit() { - const { overall, critical, peak, valley, park, tenement, meter, readAt } = this.data; + const { overall, critical, peak, valley, park, tenement, meter, readAt, deepValley } = this.data; const { code, message } = await bindMeter( park, tenement, @@ -74,6 +74,7 @@ Component({ critical : critical ? Number(critical) : critical, peak: peak ? Number(peak) : peak, valley : valley ? Number(valley) : valley, + deepValley : deepValley ? Number(deepValley) : deepValley, readAt: readAt || dayjs().format('YYYY-MM-DD HH:mm:ss') } ) diff --git a/pages/workBench/components/tenement/components/bindMeter/index.wxml b/pages/workBench/components/tenement/components/bindMeter/index.wxml index 0e2ed30..159812d 100644 --- a/pages/workBench/components/tenement/components/bindMeter/index.wxml +++ b/pages/workBench/components/tenement/components/bindMeter/index.wxml @@ -101,6 +101,16 @@ type="digit" placeholder="请输入有功(谷)" /> + diff --git a/pages/workBench/components/tenement/components/unBindMeter/index.js b/pages/workBench/components/tenement/components/unBindMeter/index.js index ebdda83..f3d72e2 100644 --- a/pages/workBench/components/tenement/components/unBindMeter/index.js +++ b/pages/workBench/components/tenement/components/unBindMeter/index.js @@ -69,7 +69,7 @@ Component({ }) }, async onSubmit() { - const { overall, critical, peak, valley, park, tenement, meterId,readAt } = this.data; + const { overall, critical, peak, valley, deepValley, park, tenement, meterId,readAt } = this.data; const { code, message, } = await unbindMeter( park, tenement, @@ -79,6 +79,7 @@ Component({ critical : critical ? Number(critical) : critical, peak: peak ? Number(peak) : peak, valley : valley ? Number(valley) : valley, + deepValley: deepValley ? Number(deepValley) : deepValley, readAt: readAt || dayjs().format('YYYY-MM-DD HH:mm:ss') }); if (code !== OK) { diff --git a/pages/workBench/components/tenement/components/unBindMeter/index.wxml b/pages/workBench/components/tenement/components/unBindMeter/index.wxml index 7a9952f..9a5ac1e 100644 --- a/pages/workBench/components/tenement/components/unBindMeter/index.wxml +++ b/pages/workBench/components/tenement/components/unBindMeter/index.wxml @@ -89,6 +89,16 @@ data-name="valley" placeholder="请输入有功(谷)" /> + diff --git a/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.js b/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.js index caba95d..75f4d98 100644 --- a/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.js +++ b/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.js @@ -64,7 +64,7 @@ Component({ }) }, async onSubmit() { - const { overall, critical, peak, valley, park, tenement, meter, readAt, flat } = this.data; + const { overall, critical, peak, valley, deepValley, park, tenement, meter, readAt, flat } = this.data; const { code, message } = await bindMeter( park, tenement, @@ -75,6 +75,7 @@ Component({ peak: peak ? Number(peak) : peak, flat: flat ? Number(flat) : flat, valley : valley ? Number(valley) : valley, + deepValley: deepValley ? Number(deepValley) : deepValley, readAt: readAt || dayjs().format('YYYY-MM-DD HH:mm:ss') } ) @@ -111,6 +112,7 @@ Component({ peak: Number(data?.peak || 0), flat: Number(data?.flat || 0), valley: Number(data?.valley || 0), + deepValley: Number(data?.deepValley || 0), 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..be4eea3 100644 --- a/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.wxml +++ b/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.wxml @@ -101,6 +101,16 @@ type="digit" placeholder="请输入有功(谷)" /> + diff --git a/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.js b/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.js index 7ee64fc..89ef917 100644 --- a/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.js +++ b/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.js @@ -60,6 +60,7 @@ Component({ peak: Number(data?.peak || 0), flat: Number(data?.flat || 0), valley: Number(data?.valley || 0), + deepValley: Number(data?.deepValley || 0), meter04kvType: data?.meter04kvType, status: data?.breakType ? '合闸' : "分闸" }) @@ -74,7 +75,7 @@ Component({ }) }, async onSubmit() { - const { overall, critical, peak, valley, park, tenement, meterId,readAt, flat } = this.data; + const { overall, critical, peak, valley, deepValley, park, tenement, meterId,readAt, flat } = this.data; const { code, message, } = await unbindMeter( park, tenement, @@ -85,6 +86,7 @@ Component({ peak: peak ? Number(peak) : peak, flat: flat ? Number(flat) : flat, valley : valley ? Number(valley) : valley, + deepValley: deepValley ? Number(deepValley) : deepValley, readAt: readAt || dayjs().format('YYYY-MM-DD HH:mm:ss') }); if (code !== OK) { diff --git a/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.wxml b/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.wxml index a4c37fc..4c225f3 100644 --- a/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.wxml +++ b/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.wxml @@ -89,6 +89,16 @@ data-name="valley" placeholder="请输入有功(谷)" /> + -- 2.49.1 From 422338f8165a29edecb6ec5d63cd2152d5ff1e38 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Wed, 12 Nov 2025 14:12:01 +0800 Subject: [PATCH 31/51] =?UTF-8?q?=E7=94=B5=E8=A1=A8=E5=BC=BA=E6=8E=A7?= =?UTF-8?q?=EF=BC=8C=E5=B7=A5=E5=8D=95=E8=B7=B3=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/installMeter/index.js | 3 + pages/workBenchNew/components/kaihu/index.js | 4 +- .../components/uninstallMeter/index.js | 37 +++++++- .../components/uninstallMeter/index.wxml | 42 ++++++++++ .../components/workBenchMeterControl/index.js | 84 +++++++------------ .../workBenchMeterControl/index.wxml | 2 +- service/meter.js | 10 ++- service/public.js | 19 +++++ 8 files changed, 141 insertions(+), 60 deletions(-) diff --git a/pages/workBenchNew/components/installMeter/index.js b/pages/workBenchNew/components/installMeter/index.js index 72b9ae9..2f00a38 100644 --- a/pages/workBenchNew/components/installMeter/index.js +++ b/pages/workBenchNew/components/installMeter/index.js @@ -390,6 +390,9 @@ Page({ return; } alertSuccess("新增成功") + wx.navigateTo({ + url: '/pages/workBenchTodoList/index', + }) }, goback() { wx.navigateBack() diff --git a/pages/workBenchNew/components/kaihu/index.js b/pages/workBenchNew/components/kaihu/index.js index 264a79b..71d2b19 100644 --- a/pages/workBenchNew/components/kaihu/index.js +++ b/pages/workBenchNew/components/kaihu/index.js @@ -52,7 +52,7 @@ Page({ phone, building, feeType, park, editType, id, parkName, } = this.data; - const { code, message } = await createBackTenement(park, { name, shortName, address, contact, phone, building, feeType }) + const { code, message, tenement } = await createBackTenement(park, { name, shortName, address, contact, phone, building, feeType }) if (code !== OK) { alertInfo(message) return @@ -60,7 +60,7 @@ Page({ alertSuccess("开户成功") // wx.navigateBack() wx.redirectTo({ - url: `/pages/workBenchNew/components/workBenchTenement/index?park=${park}&parkName=${parkName}&name=${name}`, + url: `/pages/workBenchNew/components/workBenchTenement/index?park=${park}&parkName=${parkName}&name=${name}&id=${tenement}`, }) }, handleBack() { diff --git a/pages/workBenchNew/components/uninstallMeter/index.js b/pages/workBenchNew/components/uninstallMeter/index.js index 62ed294..0d14347 100644 --- a/pages/workBenchNew/components/uninstallMeter/index.js +++ b/pages/workBenchNew/components/uninstallMeter/index.js @@ -42,6 +42,9 @@ Page({ this.setData({ park: data.id, parkName: data.name, + meter: null, + meterInfo: null, + meterName: null, }) break; case "tenement": @@ -113,13 +116,43 @@ Page({ type: "", }) }, + changeCritical(e) { + this.setData({ + critical: e.detail, + }) + }, + changePeak(e) { + this.setData({ + peak: e.detail, + }) + }, + changeFlat(e) { + this.setData({ + flat: e.detail, + }) + }, + changeValley(e) { + this.setData({ + valley: e.detail, + }) + }, + changeOverall(e) { + this.setData({ + overall: e.detail, + }) + }, + changeDeppValley(e) { + this.setData({ + deepOverall: e.detail, + }) + }, async onSubmit() { - const { meter, reason, url, meterInfo } = this.data; + const { meter, reason, url, meterInfo, critical, peak, flat, valley, overall, deepOverall } = this.data; if (!meter) { alertInfo("请选择表号") return; } - const { code, message } = await uninstallMeter({sn: meterInfo.meterSn, images: url, reason}) + const { code, message } = await uninstallMeter({sn: meterInfo.meterSn, images: url, reason, tenement: meterInfo.tenement, critical, peak, flat, valley, overall, deepOverall}) if (code !== OK) { alertInfo(message) return diff --git a/pages/workBenchNew/components/uninstallMeter/index.wxml b/pages/workBenchNew/components/uninstallMeter/index.wxml index a3b5474..a1bb62c 100644 --- a/pages/workBenchNew/components/uninstallMeter/index.wxml +++ b/pages/workBenchNew/components/uninstallMeter/index.wxml @@ -50,6 +50,48 @@ + + + + + + 提交 返回 diff --git a/pages/workBenchNew/components/workBenchMeterControl/index.js b/pages/workBenchNew/components/workBenchMeterControl/index.js index 7238e8b..04b55de 100644 --- a/pages/workBenchNew/components/workBenchMeterControl/index.js +++ b/pages/workBenchNew/components/workBenchMeterControl/index.js @@ -1,7 +1,8 @@ // pages/workBenchNew/components/workBenchMeter/index.js import { alertInfo, alertSuccess, loadingFunc } from "../../../../utils/index"; -import { getParkMeterList, handleOperateMeterSwitch } from "../../../../service/meter" +import { getParkMeterList, handleOperateMeterMode } from "../../../../service/meter" +import { uploadMeterForce } from "../../../../service/public" import request from "../../../../utils/request" const { OK } = request @@ -87,7 +88,34 @@ Page({ }) }, handleSubmit() { - const { } = this.data; + const that = this; + const { mode, days, reason, meter, meterName, url } = this.data; + if (mode === 2 && days == null) { + alertInfo("请填写天数") + return; + } + wx.showModal({ + title: '提示', + content: `确定要对${meterName}进行${["预付费", "强控", "临时强控"][mode]}操作吗?`, + complete: async (res) => { + if (res.cancel) { + + } + + if (res.confirm) { + loadingFunc(async () => { + const { code, message } = await handleOperateMeterMode({ ids: [meter], mode, days: days == null ? undefined : Number(days), reason, images: url }) + if (code !== OK) { + alertInfo(message) + return + } + alertSuccess("操作成功") + + await that.init(); + }) + } + } + }) }, uploadImage() { const that = this; @@ -107,7 +135,7 @@ Page({ } var tempFilePaths = path; loadingFunc(async () => { - const { code, message, url } = await uploadInstallMeter(tempFilePaths) + const { code, message, url } = await uploadMeterForce(tempFilePaths) if (code !== OK) { alertError(message) return @@ -178,56 +206,6 @@ Page({ 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(); - }) - } - } - }) - }, /** * 生命周期函数--监听页面初次渲染完成 */ diff --git a/pages/workBenchNew/components/workBenchMeterControl/index.wxml b/pages/workBenchNew/components/workBenchMeterControl/index.wxml index 97a2091..498c469 100644 --- a/pages/workBenchNew/components/workBenchMeterControl/index.wxml +++ b/pages/workBenchNew/components/workBenchMeterControl/index.wxml @@ -143,7 +143,7 @@ - 提交 + 确认 返回 diff --git a/service/meter.js b/service/meter.js index 276cc0e..7a11a40 100644 --- a/service/meter.js +++ b/service/meter.js @@ -37,6 +37,12 @@ export const getBackTenementMeters = async function(park, tenement) { export const handleOperateMeterSwitch = async function({ ids = [], status }) { return await PUT(`/equipment/batchSwtich`, { ids, status }); } + +// 预付费模式 +export const handleOperateMeterMode = async function({ ids = [], mode, days, images, reason }) { + return await PUT(`/equipment/batchSetMode`, { ids, mode, days, images, reason }); +} + // 绑定时获取电表的最新信息 export const getWorkMeterDetail = async function(code = '') { return await GET(`/vx/getWorkMeterDetail?code=${code}`); @@ -70,6 +76,6 @@ export const installMeter = async function(data) { } // 拆表 -export const uninstallMeter = async function({sn = "", reason = "", images = ""}) { - return await DELETE(`/flow/doMeterRemoveApproval?sn=${sn}&reason=${reason}&images=${images}`); +export const uninstallMeter = async function(data) { + return await POST(`/flow/doMeterRemoveApproval`, data); } \ No newline at end of file diff --git a/service/public.js b/service/public.js index a7c1acd..731f413 100644 --- a/service/public.js +++ b/service/public.js @@ -63,6 +63,25 @@ export const uploadInstallMeter = (filePath) => { }) } +export const uploadMeterForce = (filePath) => { + const { api } = getConfigByEnv(); + return new Promise((resolve, reject) => { + wx.uploadFile({ + filePath: filePath, + name: 'data', + url: `${api}/image/meter/force`, + header: { + authorization: 'Bearer ' + wx.getStorageSync("token") + }, + success: (res) => { + resolve(res?.data ? JSON.parse(res?.data) : res?.data); + }, + fail: (err) => { + reject(err); + } + }) + }) +} export const uploadUninstallMeter = (filePath) => { const { api } = getConfigByEnv(); return new Promise((resolve, reject) => { -- 2.49.1 From 391219bde1bdd0ea540094212274f9b3c3bc91f9 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Wed, 12 Nov 2025 15:38:00 +0800 Subject: [PATCH 32/51] =?UTF-8?q?=E5=BC=BA=E6=8E=A7=E5=92=8C=E8=A3=85?= =?UTF-8?q?=E8=A1=A8=E5=AD=97=E6=AE=B5=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/searchSelect/index.js | 3 +-- pages/workBenchNew/components/workBenchMeterControl/index.js | 3 +++ pages/workBenchTodoList/index.js | 4 ++-- service/meter.js | 4 ++-- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/components/searchSelect/index.js b/components/searchSelect/index.js index 5702dcf..947f2ef 100644 --- a/components/searchSelect/index.js +++ b/components/searchSelect/index.js @@ -124,7 +124,6 @@ Component({ 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) { @@ -216,7 +215,7 @@ Component({ }, async onSearchInventoryMeter() { const { searchText = "", park, filterBind } = this.data; - const { code, message, data: parks = [] } = await getInventoryMeter({keyword: searchText, park, isNeedBind: !filterBind}); + const { code, message, data: parks = [] } = await getInventoryMeter({keyword: searchText, park, isNeedBind: !filterBind, a : 1}); if (code !== OK) { alertInfo(message) return diff --git a/pages/workBenchNew/components/workBenchMeterControl/index.js b/pages/workBenchNew/components/workBenchMeterControl/index.js index 04b55de..707b588 100644 --- a/pages/workBenchNew/components/workBenchMeterControl/index.js +++ b/pages/workBenchNew/components/workBenchMeterControl/index.js @@ -147,6 +147,9 @@ Page({ } }) }, + goback() { + wx.navigateBack(); + }, clearImage() { this.setData({ url: "" diff --git a/pages/workBenchTodoList/index.js b/pages/workBenchTodoList/index.js index bedbce6..7fe55a9 100644 --- a/pages/workBenchTodoList/index.js +++ b/pages/workBenchTodoList/index.js @@ -64,7 +64,7 @@ onMenuSelect(e) { case "noticeFlowType": this.setData({ - noticeFlowType: data, + noticeFlowType: way, noticeFlowTypeName: data, page: 1, }, () => { @@ -75,7 +75,7 @@ onMenuSelect(e) { break; case "noticeFlowStatus": this.setData({ - noticeFlowStatus: data, + noticeFlowStatus: way, noticeFlowStatusName: data, page: 1, }, () => { diff --git a/service/meter.js b/service/meter.js index 7a11a40..15ac713 100644 --- a/service/meter.js +++ b/service/meter.js @@ -66,8 +66,8 @@ export const getCollectionList = async function({park = "", keyword = "", page = // 获取库存电表列表 -export const getInventoryMeter = async function({park = "", keyword = "", page = 1}) { - return await GET(`/electricity/list?page=${page}&park=${park}&keyword=${replaceSpecialIcon(keyword)}`); +export const getInventoryMeter = async function({park = "", keyword = "", page = 1, status = 1}) { + return await GET(`/electricity/list?page=${page}&park=${park}&keyword=${replaceSpecialIcon(keyword)}&status=${status}`); } // 新装电表 -- 2.49.1 From b940d7a6cc957a5547f835d9e772305161e5160e Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Wed, 12 Nov 2025 17:35:23 +0800 Subject: [PATCH 33/51] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E8=81=94=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/searchSelectWrapper/index.js | 1 + components/searchSelectWrapper/index.wxml | 8 ++++---- pages/workBenchNew/components/installMeter/index.js | 2 +- .../components/workBenchMeterControl/index.js | 6 ++++++ .../components/workBenchMeterControl/index.json | 1 + .../components/workBenchMeterControl/index.wxml | 4 +++- pages/workBenchTodoList/index.js | 6 +++++- pages/workBenchTodoList/index.wxml | 8 ++++---- 8 files changed, 25 insertions(+), 11 deletions(-) diff --git a/components/searchSelectWrapper/index.js b/components/searchSelectWrapper/index.js index 643c6ff..842547d 100644 --- a/components/searchSelectWrapper/index.js +++ b/components/searchSelectWrapper/index.js @@ -19,6 +19,7 @@ Component({ useSlot: Boolean, hideBorder: Boolean, required: Boolean, + transparent: Boolean, }, /** diff --git a/components/searchSelectWrapper/index.wxml b/components/searchSelectWrapper/index.wxml index 6d91201..c82c385 100644 --- a/components/searchSelectWrapper/index.wxml +++ b/components/searchSelectWrapper/index.wxml @@ -1,7 +1,7 @@ *{{ label }} - + {{placeholder}} {{text}} @@ -10,7 +10,7 @@ *{{ label }} - + *{{ label }} - + *{{ label }} - + \ No newline at end of file diff --git a/pages/workBenchNew/components/installMeter/index.js b/pages/workBenchNew/components/installMeter/index.js index 2f00a38..a657f45 100644 --- a/pages/workBenchNew/components/installMeter/index.js +++ b/pages/workBenchNew/components/installMeter/index.js @@ -381,7 +381,7 @@ Page({ return; } const { code, data, message } = await installMeter({ - park, meter, address, building, meterBox, meterType, + park, meterSn: meter, address, building, meterBox, meterType, ratio, area, card, collectionA, collectionB, collectionC, tenement, sharp, peak, flat, valley, overall, url, sn }) diff --git a/pages/workBenchNew/components/workBenchMeterControl/index.js b/pages/workBenchNew/components/workBenchMeterControl/index.js index 707b588..da7e9f3 100644 --- a/pages/workBenchNew/components/workBenchMeterControl/index.js +++ b/pages/workBenchNew/components/workBenchMeterControl/index.js @@ -112,6 +112,12 @@ Page({ alertSuccess("操作成功") await that.init(); + this.setData({ + mode: null, + days: null, + reason: null, + url: null, + }) }) } } diff --git a/pages/workBenchNew/components/workBenchMeterControl/index.json b/pages/workBenchNew/components/workBenchMeterControl/index.json index cf25777..01fad66 100644 --- a/pages/workBenchNew/components/workBenchMeterControl/index.json +++ b/pages/workBenchNew/components/workBenchMeterControl/index.json @@ -4,6 +4,7 @@ "van-button": "@vant/weapp/button/index", "search-select": "/components/searchSelect/index", "van-empty": "@vant/weapp/empty/index", + "van-image": "@vant/weapp/image/index", "table": "/components/table/table", "pagination": "/components/pagination/index", "empty": "/components/empty/index", diff --git a/pages/workBenchNew/components/workBenchMeterControl/index.wxml b/pages/workBenchNew/components/workBenchMeterControl/index.wxml index 498c469..c057ffe 100644 --- a/pages/workBenchNew/components/workBenchMeterControl/index.wxml +++ b/pages/workBenchNew/components/workBenchMeterControl/index.wxml @@ -117,6 +117,7 @@ text="{{days}}" type="input" bind:changeText="changeDays" + required="{{true}}" /> @@ -138,7 +140,7 @@ 清除 - + diff --git a/pages/workBenchTodoList/index.js b/pages/workBenchTodoList/index.js index 7fe55a9..a09da8c 100644 --- a/pages/workBenchTodoList/index.js +++ b/pages/workBenchTodoList/index.js @@ -35,8 +35,12 @@ onMenuSelect(e) { } = e.detail; const id = e.currentTarget.dataset.id; - if (value === 'detail') { + switch(value) { + case "detail": this.jumpToDetail(id); + break; + case "ok": + break; } }, jumpToDetail(id) { diff --git a/pages/workBenchTodoList/index.wxml b/pages/workBenchTodoList/index.wxml index 0d26819..e55bd96 100644 --- a/pages/workBenchTodoList/index.wxml +++ b/pages/workBenchTodoList/index.wxml @@ -55,7 +55,7 @@ {{ item.flow_status === 1 ? "处理中" : "已确认" }} - - + -- 2.49.1 From 1a6071194aa701775e92bddd1fbb5f88e93999ee Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Wed, 12 Nov 2025 18:14:12 +0800 Subject: [PATCH 34/51] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/workBenchTodoList/index.js | 14 ++++++-- pages/workBenchTodoList/index.json | 2 +- pages/workOrderDetail/index.js | 52 +++++++++++++++++++++++++-- pages/workOrderDetail/index.json | 7 +++- pages/workOrderDetail/index.wxml | 58 +++++++++++++++++++++++++++++- pages/workOrderDetail/index.wxss | 17 ++++++++- project.private.config.json | 7 ++++ service/workBench.js | 12 ++++++- 8 files changed, 159 insertions(+), 10 deletions(-) diff --git a/pages/workBenchTodoList/index.js b/pages/workBenchTodoList/index.js index a09da8c..b951c31 100644 --- a/pages/workBenchTodoList/index.js +++ b/pages/workBenchTodoList/index.js @@ -1,7 +1,7 @@ // pages/workBenchTodoList/index.js import request from "../../utils/request" -import { getWorkOrderList } from "../../service/workBench" -import { alertInfo, loadingFunc } from "../../utils/index"; +import { getWorkOrderList, doNoticeFlow } from "../../service/workBench" +import { alertInfo, alertSuccess, loadingFunc } from "../../utils/index"; import { noticeFlowType } from "../../utils/data" const { OK } = request Page({ @@ -40,9 +40,19 @@ onMenuSelect(e) { this.jumpToDetail(id); break; case "ok": + this.handleDoNotice(id); break; } }, + async handleDoNotice(id) { + const { code, message } = await doNoticeFlow(id) + if (code !== OK) { + alertInfo(message) + return + } + alertSuccess("确认成功") + this.init(); + }, jumpToDetail(id) { // wx.navigateTo({ diff --git a/pages/workBenchTodoList/index.json b/pages/workBenchTodoList/index.json index ede92dd..8705131 100644 --- a/pages/workBenchTodoList/index.json +++ b/pages/workBenchTodoList/index.json @@ -1,11 +1,11 @@ { "usingComponents": { "navigator": "/components/navigator/index", + "van-field": "@vant/weapp/field/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", "van-empty": "@vant/weapp/empty/index", diff --git a/pages/workOrderDetail/index.js b/pages/workOrderDetail/index.js index 9b339ba..646709d 100644 --- a/pages/workOrderDetail/index.js +++ b/pages/workOrderDetail/index.js @@ -1,3 +1,9 @@ +import { loadingFunc, alertSuccess, alertInfo } from "../../utils/index"; +import request from "../../utils/request" +import { getNoticeFlowDetail, doNoticeFlow } from "../../service/workBench" + +const { OK } = request; + // pages/workOrderDetail/index.js Page({ @@ -5,16 +11,56 @@ Page({ * 页面的初始数据 */ data: { - + detail: {} }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { - + const { id } = options; + const that = this; + loadingFunc(async () => { + that.getDetail(id) + }) + }, + showImage() { + this.setData({ + imageShow: true + }) + }, + onClose() { + this.setData({ + imageShow: false + }) + }, + goback() { + wx.navigateBack(); + }, + async onSubmit() { + const {detail} = this.data; + const {id} = detail; + const { code, message } = await doNoticeFlow(id) + if (code !== OK) { + alertInfo(message) + return + } + alertSuccess("确认成功") + const that = this; + loadingFunc(async () => { + that.getDetail(id) + }) + }, + async getDetail(id) { + const { code, data ,message } = await getNoticeFlowDetail(id) + if (code !== OK) { + alertInfo(message) + return; + } + this.setData({ + detail: data + }) }, - /** * 生命周期函数--监听页面初次渲染完成 */ diff --git a/pages/workOrderDetail/index.json b/pages/workOrderDetail/index.json index 8835af0..357ff18 100644 --- a/pages/workOrderDetail/index.json +++ b/pages/workOrderDetail/index.json @@ -1,3 +1,8 @@ { - "usingComponents": {} + "usingComponents": { + "navigator": "/components/navigator/index", + "van-popup": "@vant/weapp/popup/index", + "van-field": "@vant/weapp/field/index" + }, + "navigationStyle": "custom" } \ No newline at end of file diff --git a/pages/workOrderDetail/index.wxml b/pages/workOrderDetail/index.wxml index 15d3210..26e571b 100644 --- a/pages/workOrderDetail/index.wxml +++ b/pages/workOrderDetail/index.wxml @@ -1,2 +1,58 @@ -pages/workOrderDetail/index.wxml \ No newline at end of file + + + + + + + + + + + + - + + + + 提交 + 返回 + + + + + + + \ No newline at end of file diff --git a/pages/workOrderDetail/index.wxss b/pages/workOrderDetail/index.wxss index d1b82a2..112aa5a 100644 --- a/pages/workOrderDetail/index.wxss +++ b/pages/workOrderDetail/index.wxss @@ -1 +1,16 @@ -/* pages/workOrderDetail/index.wxss */ \ No newline at end of file +/* pages/workOrderDetail/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/project.private.config.json b/project.private.config.json index 422eecd..1069557 100644 --- a/project.private.config.json +++ b/project.private.config.json @@ -23,6 +23,13 @@ "condition": { "miniprogram": { "list": [ + { + "name": "pages/workOrderDetail/index", + "pathName": "pages/workOrderDetail/index", + "query": "id=NM00123091982548993", + "launchMode": "default", + "scene": null + }, { "name": "pages/workBenchTodoList/index", "pathName": "pages/workBenchTodoList/index", diff --git a/service/workBench.js b/service/workBench.js index 61f0169..a616200 100644 --- a/service/workBench.js +++ b/service/workBench.js @@ -56,4 +56,14 @@ 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 +} + +// 确认当前流程 +export const doNoticeFlow = async function(id) { + return await PUT(`/noticeFlow/${id}/meter/dispose`,); +} + +// 确认当前流程 +export const getNoticeFlowDetail = async function(id) { + return await GET(`/noticeFlow/${id}/detail`,); +} -- 2.49.1 From 496d7fb7d6f4804391071d1583833bc815875484 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Wed, 12 Nov 2025 18:16:16 +0800 Subject: [PATCH 35/51] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/workOrderDetail/index.json | 3 ++- pages/workOrderDetail/index.wxml | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/pages/workOrderDetail/index.json b/pages/workOrderDetail/index.json index 357ff18..827f19a 100644 --- a/pages/workOrderDetail/index.json +++ b/pages/workOrderDetail/index.json @@ -2,7 +2,8 @@ "usingComponents": { "navigator": "/components/navigator/index", "van-popup": "@vant/weapp/popup/index", - "van-field": "@vant/weapp/field/index" + "van-field": "@vant/weapp/field/index", + "van-button": "@vant/weapp/button/index" }, "navigationStyle": "custom" } \ No newline at end of file diff --git a/pages/workOrderDetail/index.wxml b/pages/workOrderDetail/index.wxml index 26e571b..ca8f202 100644 --- a/pages/workOrderDetail/index.wxml +++ b/pages/workOrderDetail/index.wxml @@ -36,10 +36,12 @@ - - + + 提交 返回 + -- 2.49.1 From d7d536623020749edfbae34eda3f05928d19ff01 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Thu, 13 Nov 2025 11:07:16 +0800 Subject: [PATCH 36/51] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E7=A1=AE=E8=AE=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/workBenchTodoList/index.js | 16 +++++++++------- pages/workBenchTodoList/index.wxml | 2 +- pages/workOrderDetail/index.wxml | 2 +- project.private.config.json | 7 +++++++ 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/pages/workBenchTodoList/index.js b/pages/workBenchTodoList/index.js index b951c31..4632cce 100644 --- a/pages/workBenchTodoList/index.js +++ b/pages/workBenchTodoList/index.js @@ -14,12 +14,14 @@ Page({ size: 20, noticeFlowType, actionItems: [{ - name: '确认', - value: 'status' - }], + name: '详情', + value: 'detail' + },{ + name: '确认', + value: 'ok' +}], }, showActionMenu(e) { - console.log("e", e) this.setData({ currentActionSheet: e.currentTarget.dataset.id }); @@ -55,9 +57,9 @@ onMenuSelect(e) { }, jumpToDetail(id) { - // wx.navigateTo({ - // url: '/pages/workOrderDetail/index?id=' + id, - // }) + wx.navigateTo({ + url: '/pages/workOrderDetail/index?id=' + id, + }) }, onConfirm(e) { const { type, data = {}, way } = e.detail; diff --git a/pages/workBenchTodoList/index.wxml b/pages/workBenchTodoList/index.wxml index e55bd96..9fb0913 100644 --- a/pages/workBenchTodoList/index.wxml +++ b/pages/workBenchTodoList/index.wxml @@ -55,7 +55,7 @@ {{ item.flow_status === 1 ? "处理中" : "已确认" }} - + - 提交 + 确认 返回 diff --git a/project.private.config.json b/project.private.config.json index 1069557..485a980 100644 --- a/project.private.config.json +++ b/project.private.config.json @@ -23,6 +23,13 @@ "condition": { "miniprogram": { "list": [ + { + "name": "pages/workBenchTodoList/index", + "pathName": "pages/workBenchTodoList/index", + "query": "", + "launchMode": "default", + "scene": null + }, { "name": "pages/workOrderDetail/index", "pathName": "pages/workOrderDetail/index", -- 2.49.1 From edfd386e1b98a58777b265b46619ec4cf9adafc8 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Thu, 13 Nov 2025 17:10:33 +0800 Subject: [PATCH 37/51] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E6=89=93=E5=8D=B0?= =?UTF-8?q?=EF=BC=8C=E6=8A=84=E8=A1=A8=E8=B7=AF=E7=BA=BF=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E6=89=80=E6=9C=89=E5=9B=AD=E5=8C=BA=EF=BC=8C=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E9=83=A8=E5=88=86=E9=80=89=E6=8B=A9=E6=A1=86=E6=B8=85=E9=99=A4?= =?UTF-8?q?=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/searchSelect/index.js | 2 - components/searchSelectWrapper/index.js | 5 ++- components/searchSelectWrapper/index.wxml | 2 +- pages/login/index.js | 1 - .../components/installMeter/index.js | 26 +++++++++++- .../components/installMeter/index.wxml | 9 ++++ .../components/uninstallMeter/index.js | 1 - .../components/workBenchMeterControl/index.js | 2 +- .../components/workBenchReading/index.js | 5 --- .../components/workBenchReading/index.wxml | 3 +- .../components/workBenchTenement/index.js | 1 - pages/workBenchTodoList/index.js | 41 ++++++++++++++++--- pages/workBenchTodoList/index.wxml | 10 ++++- pages/workOrderDetail/index.js | 9 ++-- project.private.config.json | 7 ++++ utils/index.js | 4 +- 16 files changed, 100 insertions(+), 28 deletions(-) diff --git a/components/searchSelect/index.js b/components/searchSelect/index.js index 947f2ef..b27bdb6 100644 --- a/components/searchSelect/index.js +++ b/components/searchSelect/index.js @@ -25,7 +25,6 @@ Component({ observers: { "show,type,filterBind": function(newShow, newType) { if (newShow && newType) { - console.log("newShow", newShow,"newType", newType) this.onSearch() } } @@ -68,7 +67,6 @@ Component({ }, onConfirm(event) { const { index } = event.detail; - console.log("index", index) const { list = [], type } = this.data; const item = list[index]; if (!item) { diff --git a/components/searchSelectWrapper/index.js b/components/searchSelectWrapper/index.js index 842547d..923f040 100644 --- a/components/searchSelectWrapper/index.js +++ b/components/searchSelectWrapper/index.js @@ -20,6 +20,7 @@ Component({ hideBorder: Boolean, required: Boolean, transparent: Boolean, + allowClear: Boolean, }, /** @@ -42,12 +43,14 @@ Component({ }, onChangeText(e) { this.setData({ text: e.detail }); - console.log("----------") this.triggerEvent("changeText", e.detail) }, onSearchKeyword() { this.triggerEvent("searchKeyword", this.data.keyword) this.setData({ keyword: "" }) + }, + onClear() { + this.triggerEvent("clear") } } }) \ No newline at end of file diff --git a/components/searchSelectWrapper/index.wxml b/components/searchSelectWrapper/index.wxml index c82c385..548d684 100644 --- a/components/searchSelectWrapper/index.wxml +++ b/components/searchSelectWrapper/index.wxml @@ -4,7 +4,7 @@ {{placeholder}} {{text}} - + diff --git a/pages/login/index.js b/pages/login/index.js index 2dcd977..5e6b8c5 100644 --- a/pages/login/index.js +++ b/pages/login/index.js @@ -58,7 +58,6 @@ Page({ const { token, ...user } = data wx.setStorageSync('user', user) wx.setStorageSync('token', data?.token) - console.log("user.workStatus", user.workStatus) if (user.workStatus) { wx.redirectTo({ url: '/pages/workBenchNew/index', diff --git a/pages/workBenchNew/components/installMeter/index.js b/pages/workBenchNew/components/installMeter/index.js index a657f45..91f3904 100644 --- a/pages/workBenchNew/components/installMeter/index.js +++ b/pages/workBenchNew/components/installMeter/index.js @@ -14,6 +14,7 @@ Page({ data: { time: "", area: "", + placeholder: "", }, /** @@ -151,7 +152,6 @@ Page({ 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({ @@ -293,6 +293,30 @@ Page({ } this.onCancel(); }, + clearCard() { + this.setData({ + card: null, + cardName: null, + }) + }, + clearCollectionA() { + this.setData({ + collectionA: null, + collectionAName: null, + }) + }, + clearCollectionB() { + this.setData({ + collectionB: null, + collectionBName: null, + }) + }, + clearCollectionC() { + this.setData({ + collectionC: null, + collectionCName: null, + }) + }, changeAddress(e) { this.setData({ address: e.detail diff --git a/pages/workBenchNew/components/installMeter/index.wxml b/pages/workBenchNew/components/installMeter/index.wxml index 39fc91d..e3aafef 100644 --- a/pages/workBenchNew/components/installMeter/index.wxml +++ b/pages/workBenchNew/components/installMeter/index.wxml @@ -85,24 +85,32 @@ placeholder="请选择卡绑定(选填)" text="{{cardName}}" bind:search="onBindCard" + allowClear="{{true}}" + bind:clear="clearCard" /> diff --git a/pages/workBenchNew/components/uninstallMeter/index.js b/pages/workBenchNew/components/uninstallMeter/index.js index 0d14347..38f91fb 100644 --- a/pages/workBenchNew/components/uninstallMeter/index.js +++ b/pages/workBenchNew/components/uninstallMeter/index.js @@ -171,7 +171,6 @@ Page({ 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({ diff --git a/pages/workBenchNew/components/workBenchMeterControl/index.js b/pages/workBenchNew/components/workBenchMeterControl/index.js index da7e9f3..28ab80a 100644 --- a/pages/workBenchNew/components/workBenchMeterControl/index.js +++ b/pages/workBenchNew/components/workBenchMeterControl/index.js @@ -114,6 +114,7 @@ Page({ await that.init(); this.setData({ mode: null, + modeName: null, days: null, reason: null, url: null, @@ -130,7 +131,6 @@ Page({ 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({ diff --git a/pages/workBenchNew/components/workBenchReading/index.js b/pages/workBenchNew/components/workBenchReading/index.js index b19578d..7cda274 100644 --- a/pages/workBenchNew/components/workBenchReading/index.js +++ b/pages/workBenchNew/components/workBenchReading/index.js @@ -93,7 +93,6 @@ Page({ alertError(message) return; } - console.log("data", data, "num", num) if (!data) { wx.showModal({ title: '提示', @@ -146,10 +145,6 @@ Page({ * 生命周期函数--监听页面显示 */ onShow() { - const { parkName } = this.data; - if (!parkName) { - return - } this.init() }, diff --git a/pages/workBenchNew/components/workBenchReading/index.wxml b/pages/workBenchNew/components/workBenchReading/index.wxml index 2d6a964..f153059 100644 --- a/pages/workBenchNew/components/workBenchReading/index.wxml +++ b/pages/workBenchNew/components/workBenchReading/index.wxml @@ -23,9 +23,8 @@ bindcancel="onConcal" /> - - + { + loadingFunc(async () => { + await that.init() + }) + }) +}, +onClearMeter() { + const that = this; + this.setData({ meter: null, meterName: null }, () => { + loadingFunc(async () => { + await that.init() + }) + }) +}, +onClearType() { + const that = this; + this.setData({ noticeFlowType: null, noticeFlowTypeName: null }, () => { + loadingFunc(async () => { + await that.init() + }) + }) +}, +onClearStatus() { + const that = this; + this.setData({ noticeFlowStatus: null, noticeFlowStatusName: null }, () => { + loadingFunc(async () => { + await that.init() + }) + }) +}, hideActionMenu() { this.setData({ currentActionSheet: null @@ -173,11 +202,11 @@ onMenuSelect(e) { return; } this.setData({ - list: data?.map(item => { + list: Array.isArray(data) ? 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), }) }, diff --git a/pages/workBenchTodoList/index.wxml b/pages/workBenchTodoList/index.wxml index 9fb0913..e0d8955 100644 --- a/pages/workBenchTodoList/index.wxml +++ b/pages/workBenchTodoList/index.wxml @@ -6,6 +6,8 @@ placeholder="请选择园区" text="{{parkName}}" bind:search="onParkFocus" + allowClear="{{true}}" + bind:clear="onClearPark" /> @@ -52,7 +60,7 @@ {{ item.address }} - {{ item.flow_status === 1 ? "处理中" : "已确认" }} + {{ item.current_user_audit_status === 0 ? "处理中" : "已确认" }} diff --git a/pages/workOrderDetail/index.js b/pages/workOrderDetail/index.js index 646709d..e514826 100644 --- a/pages/workOrderDetail/index.js +++ b/pages/workOrderDetail/index.js @@ -47,9 +47,12 @@ Page({ } alertSuccess("确认成功") const that = this; - loadingFunc(async () => { - that.getDetail(id) - }) + setTimeout(() => { + loadingFunc(async () => { + await that.getDetail(id) + }) + }, 300) + }, async getDetail(id) { const { code, data ,message } = await getNoticeFlowDetail(id) diff --git a/project.private.config.json b/project.private.config.json index 485a980..6409ae4 100644 --- a/project.private.config.json +++ b/project.private.config.json @@ -23,6 +23,13 @@ "condition": { "miniprogram": { "list": [ + { + "name": "pages/workBenchNew/components/installMeter/index", + "pathName": "pages/workBenchNew/components/installMeter/index", + "query": "", + "launchMode": "default", + "scene": null + }, { "name": "pages/workBenchTodoList/index", "pathName": "pages/workBenchTodoList/index", diff --git a/utils/index.js b/utils/index.js index 6d79893..037debd 100644 --- a/utils/index.js +++ b/utils/index.js @@ -45,10 +45,10 @@ export function getConfigByEnv() { switch (envVersion) { // 开发版 case 'develop': - api = "http://localhost:8000" + // api = "http://localhost:8000" // api = "https://zgd.hbhcbn.com/api3" // TODO: 发布正式时使用此路径 - // api = "https://zgd.hbhcbn.com/wxApi" + api = "https://zgd.hbhcbn.com/wxApi" // api = "http://127.0.0.1:4523/m1/4143821-0-default" break; // 体验版 -- 2.49.1 From 3259eb2465ccb9149d7034bcb6399a255e8dd1b6 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Fri, 14 Nov 2025 14:17:57 +0800 Subject: [PATCH 38/51] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/searchSelectWrapper/index.js | 1 + components/searchSelectWrapper/index.wxml | 2 +- .../components/recharge/index.wxml | 41 +++++++++++++++---- .../components/recharge/index.wxss | 18 +++++++- .../components/workBenchMeterControl/index.js | 1 + 5 files changed, 54 insertions(+), 9 deletions(-) diff --git a/components/searchSelectWrapper/index.js b/components/searchSelectWrapper/index.js index 923f040..1f0b9e7 100644 --- a/components/searchSelectWrapper/index.js +++ b/components/searchSelectWrapper/index.js @@ -21,6 +21,7 @@ Component({ required: Boolean, transparent: Boolean, allowClear: Boolean, + hideMargin: Boolean, }, /** diff --git a/components/searchSelectWrapper/index.wxml b/components/searchSelectWrapper/index.wxml index 548d684..d615ec9 100644 --- a/components/searchSelectWrapper/index.wxml +++ b/components/searchSelectWrapper/index.wxml @@ -37,7 +37,7 @@ *{{ label }} - + \ No newline at end of file diff --git a/pages/workBenchNew/components/recharge/index.wxml b/pages/workBenchNew/components/recharge/index.wxml index 868329b..ec5e587 100644 --- a/pages/workBenchNew/components/recharge/index.wxml +++ b/pages/workBenchNew/components/recharge/index.wxml @@ -17,11 +17,23 @@ + useSlot="{{true}}" + hideBorder="{{true}}" + hideMargin="{{true}}" + type="" + > + + + + + text="{{voucherNo}}" + fieldType="number" + bind:changeText="onChangeMoney" + useSlot="{{true}}" + hideBorder="{{true}}" + hideMargin="{{true}}" + type="" + > + + + + diff --git a/pages/workBenchNew/components/recharge/index.wxss b/pages/workBenchNew/components/recharge/index.wxss index b1ed3a3..c7e9761 100644 --- a/pages/workBenchNew/components/recharge/index.wxss +++ b/pages/workBenchNew/components/recharge/index.wxss @@ -1 +1,17 @@ -/* pages/workBenchNew/components/recharge/index.wxss */ \ No newline at end of file +/* pages/workBenchNew/components/recharge/index.wxss */ + + +.inputContent { + flex: 1; + margin-right: 10rpx; + display: flex; + padding: 0 20rpx; + border-radius: 12rpx; + border: 1rpx solid #ccc; + background-color: #fff; + position: relative; +} + +.text { + flex: 1; +} \ No newline at end of file diff --git a/pages/workBenchNew/components/workBenchMeterControl/index.js b/pages/workBenchNew/components/workBenchMeterControl/index.js index 28ab80a..9a5fe6d 100644 --- a/pages/workBenchNew/components/workBenchMeterControl/index.js +++ b/pages/workBenchNew/components/workBenchMeterControl/index.js @@ -107,6 +107,7 @@ Page({ const { code, message } = await handleOperateMeterMode({ ids: [meter], mode, days: days == null ? undefined : Number(days), reason, images: url }) if (code !== OK) { alertInfo(message) + await that.init(); return } alertSuccess("操作成功") -- 2.49.1 From f138fabce996c620a76929577fabbf1b551d5d48 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Fri, 14 Nov 2025 14:23:28 +0800 Subject: [PATCH 39/51] =?UTF-8?q?=E5=85=85=E5=80=BC=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=95=86=E6=88=B7id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/workBenchNew/components/recharge/index.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pages/workBenchNew/components/recharge/index.js b/pages/workBenchNew/components/recharge/index.js index 6c39e8e..71d0d16 100644 --- a/pages/workBenchNew/components/recharge/index.js +++ b/pages/workBenchNew/components/recharge/index.js @@ -50,6 +50,7 @@ Page({ this.setData({ meterName: `${data.meterNo}-${data.address}${data.tenement?.name ? '-' + data.tenement?.name : ''}`, meter: data.id, + meterInfo: data, }) break; case "pay": @@ -98,7 +99,7 @@ Page({ }, async handleSubmit() { const that = this; - const { park, meter, money, way, voucherNo } = this.data; + const { park, meter, money, way, voucherNo, meterInfo } = this.data; if (!park) { alertInfo("请选择园区"); return; @@ -125,7 +126,8 @@ Page({ meter, paymentType: way, voucherNo, - type: 0 + type: 0 , + tenement: meterInfo?.tenement, }) if (code !== OK) { alertInfo(message) -- 2.49.1 From 771bacdafaf7bd5e1894e4bf0afd5bea0d8eac23 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Fri, 14 Nov 2025 17:22:11 +0800 Subject: [PATCH 40/51] =?UTF-8?q?=E7=94=B5=E8=A1=A8=E7=AE=B1=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=8C=89=E5=BB=BA=E7=AD=91=E7=AD=9B=E9=80=89=EF=BC=8C?= =?UTF-8?q?=E5=80=8D=E7=8E=87=E5=BF=85=E5=A1=AB=EF=BC=8C=E6=8B=86=E8=A1=A8?= =?UTF-8?q?=E4=BC=A0id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/searchSelect/index.js | 5 +++-- pages/workBenchNew/components/installMeter/index.js | 2 +- pages/workBenchNew/components/installMeter/index.wxml | 3 +++ pages/workBenchNew/components/uninstallMeter/index.js | 2 +- service/meter.js | 4 ++-- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/components/searchSelect/index.js b/components/searchSelect/index.js index b27bdb6..1e86c61 100644 --- a/components/searchSelect/index.js +++ b/components/searchSelect/index.js @@ -19,6 +19,7 @@ Component({ type: String, show: Boolean, park: String, + building: String, isBack: Boolean, filterBind: Boolean, }, @@ -248,8 +249,8 @@ Component({ }) }, async onSearchMeterBox() { - const { park } = this.data; - const { code, message, data = [] } = await getParkBoxList({park}); + const { park, building } = this.data; + const { code, message, data = [] } = await getParkBoxList({park, building}); if (code !== OK) { alertInfo(message) return diff --git a/pages/workBenchNew/components/installMeter/index.js b/pages/workBenchNew/components/installMeter/index.js index 91f3904..2c02fe7 100644 --- a/pages/workBenchNew/components/installMeter/index.js +++ b/pages/workBenchNew/components/installMeter/index.js @@ -384,7 +384,7 @@ Page({ tenement, sharp, peak, flat, valley, overall, url, sn, collectionARatio, collectionBRatio, collectionCRatio } = this.data; - if (!park || !(meter || sn) || !address || meterType == null || !building || !meterBox) { + if (!park || !(meter || sn) || !address || meterType == null || !building || !meterBox || ratio == null) { alertInfo("请填写必填项后保存") return; } diff --git a/pages/workBenchNew/components/installMeter/index.wxml b/pages/workBenchNew/components/installMeter/index.wxml index e3aafef..3a1be0c 100644 --- a/pages/workBenchNew/components/installMeter/index.wxml +++ b/pages/workBenchNew/components/installMeter/index.wxml @@ -49,6 +49,7 @@ placeholder="请选择电表箱" text="{{meterBoxName}}" bind:search="onMeterBoxFocus" + required="{{true}}" /> Date: Mon, 17 Nov 2025 15:51:41 +0800 Subject: [PATCH 41/51] =?UTF-8?q?=E8=A3=85=E8=A1=A8=E7=9A=84=E6=97=B6?= =?UTF-8?q?=E5=80=99=E8=BF=87=E6=BB=A4=E5=B7=B2=E7=BB=8F=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E7=9A=84=E4=BA=92=E6=84=9F=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/searchSelect/index.js | 14 +++- .../components/installMeter/index.js | 74 +++++++++++++------ .../components/installMeter/index.wxml | 2 + pages/workBenchTodoList/index.js | 18 ++++- pages/workBenchTodoList/index.wxml | 3 +- 5 files changed, 81 insertions(+), 30 deletions(-) diff --git a/components/searchSelect/index.js b/components/searchSelect/index.js index 1e86c61..558a7ca 100644 --- a/components/searchSelect/index.js +++ b/components/searchSelect/index.js @@ -22,6 +22,8 @@ Component({ building: String, isBack: Boolean, filterBind: Boolean, + filterData: Array, + filterType: String }, observers: { "show,type,filterBind": function(newShow, newType) { @@ -189,15 +191,21 @@ Component({ }) }, async onSearchCollection() { - const { searchText = "" } = this.data; + const { searchText = "", filterData, filterType } = this.data; const { code, message, data: parks = [] } = await getCollectionList({keyword: searchText, page: 1, status: 1}); if (code !== OK) { alertInfo(message) return } + let columns = parks; + if (filterType === 'collection') { + columns = columns.filter(item => { + return !filterData.includes(item.id) + }) + } this.setData({ - columns: parks?.map(item => `${item.transformerId}-倍率:${item.ratio}-${item.manufacturer}`), - list: parks, + columns: columns?.map(item => `${item.transformerId}-倍率:${item.ratio}-${item.manufacturer}`), + list: columns, }) }, async onSearchMeter() { diff --git a/pages/workBenchNew/components/installMeter/index.js b/pages/workBenchNew/components/installMeter/index.js index 2c02fe7..367a54e 100644 --- a/pages/workBenchNew/components/installMeter/index.js +++ b/pages/workBenchNew/components/installMeter/index.js @@ -15,6 +15,7 @@ Page({ time: "", area: "", placeholder: "", + collections: [], }, /** @@ -179,6 +180,33 @@ Page({ sn: e.detail, }) }, + clearData() { + this.setData({ + tenement: null, + tenementName: null, + building: null, + buildingName: null, + meterBox: null, + 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, + collections: [], + }) + }, onConfirm(e) { console.log("e", e) const { type, data = {}, way } = e.detail; @@ -191,30 +219,7 @@ Page({ selfManagement: data.selfManagement, }) if (park !== data.id) { - this.setData({ - tenement: null, - tenementName: null, - building: null, - buildingName: null, - meterBox: null, - 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, - }) + this.clearData() } break; case "tenement": @@ -266,26 +271,33 @@ Page({ }); break; case "collection": + const newCollects = this.data.collections; let newData = {} if (collection === "A") { + newCollects[0] = data.id newData = { collectionA: data.id, collectionAName: `${data.transformerId}-倍率:${data.ratio}-${data.manufacturer}`, collectionARatio: data.ratio, + collections: newCollects } } if (collection === "B") { + newCollects[1] = data.id newData = { collectionB: data.id, collectionBName: `${data.transformerId}-倍率:${data.ratio}-${data.manufacturer}`, collectionBRatio: data.ratio, + collections: newCollects } } if (collection === "C") { + newCollects[2] = data.id newData = { collectionC: data.id, collectionCName: `${data.transformerId}-倍率:${data.ratio}-${data.manufacturer}`, collectionCRatio: data.ratio, + collections: newCollects } } this.setData(newData); @@ -300,21 +312,30 @@ Page({ }) }, clearCollectionA() { + const newCollects = this.data.collections; + newCollects[0] = null; this.setData({ collectionA: null, collectionAName: null, + collections: newCollects, }) }, clearCollectionB() { + const newCollects = this.data.collections; + newCollects[1] = null; this.setData({ collectionB: null, collectionBName: null, + collections: newCollects, }) }, clearCollectionC() { + const newCollects = this.data.collections; + newCollects[2] = null; this.setData({ collectionC: null, collectionCName: null, + collections: newCollects, }) }, changeAddress(e) { @@ -414,6 +435,11 @@ Page({ return; } alertSuccess("新增成功") + this.setData({ + park: null, + parkName: null, + }) + this.clearData() wx.navigateTo({ url: '/pages/workBenchTodoList/index', }) diff --git a/pages/workBenchNew/components/installMeter/index.wxml b/pages/workBenchNew/components/installMeter/index.wxml index 3a1be0c..a103bd3 100644 --- a/pages/workBenchNew/components/installMeter/index.wxml +++ b/pages/workBenchNew/components/installMeter/index.wxml @@ -184,6 +184,8 @@ park="{{park}}" building="{{building}}" bindconfirm="onConfirm" + filterData="{{collections}}" + filterType="collection" bindcancel="onCancel" placeholder="{{placeholder}}" wx:if="{{show}}" diff --git a/pages/workBenchTodoList/index.js b/pages/workBenchTodoList/index.js index 0373ea6..6294e96 100644 --- a/pages/workBenchTodoList/index.js +++ b/pages/workBenchTodoList/index.js @@ -19,8 +19,19 @@ Page({ }], }, showActionMenu(e) { + const { id, status } = e.currentTarget.dataset; this.setData({ - currentActionSheet: e.currentTarget.dataset.id + currentActionSheet: id, + actionItems: status === 0 ? [{ + name: '详情', + value: 'detail' + }, { + name: '确认', + value: 'ok' + }] : [{ + name: '详情', + value: 'detail' + }] }); }, onClearPark() { @@ -82,7 +93,10 @@ onMenuSelect(e) { return } alertSuccess("确认成功") - this.init(); + const that = this; + setTimeout(() => { + that.init(); + }, 300) }, jumpToDetail(id) { diff --git a/pages/workBenchTodoList/index.wxml b/pages/workBenchTodoList/index.wxml index e0d8955..246edd4 100644 --- a/pages/workBenchTodoList/index.wxml +++ b/pages/workBenchTodoList/index.wxml @@ -63,13 +63,14 @@ {{ item.current_user_audit_status === 0 ? "处理中" : "已确认" }} - + + diff --git a/utils/index.js b/utils/index.js index 037debd..dfaec5a 100644 --- a/utils/index.js +++ b/utils/index.js @@ -45,10 +45,10 @@ export function getConfigByEnv() { switch (envVersion) { // 开发版 case 'develop': - // api = "http://localhost:8000" + api = "http://localhost:8000" // api = "https://zgd.hbhcbn.com/api3" // TODO: 发布正式时使用此路径 - api = "https://zgd.hbhcbn.com/wxApi" + // api = "https://zgd.hbhcbn.com/wxApi" // api = "http://127.0.0.1:4523/m1/4143821-0-default" break; // 体验版 -- 2.49.1 From c03d70b2219ac4a152d4335ac13f64dd5eefb0c7 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Tue, 18 Nov 2025 10:52:02 +0800 Subject: [PATCH 43/51] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=E4=B8=B2=E6=A0=BC=E5=BC=8F=E7=9A=84=E6=95=B0=E5=AD=97=E4=B8=BA?= =?UTF-8?q?=E2=80=9C=E2=80=9D=E7=9A=84=E6=97=B6=E5=80=99=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=8A=A5=E9=94=99=E7=9A=84=E9=97=AE=E9=A2=98=E5=92=8C=E8=A3=85?= =?UTF-8?q?=E8=A1=A8=E7=9A=84=E6=97=B6=E5=80=99=E6=9C=AA=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E5=B7=B2=E8=A3=85=E7=94=B5=E8=A1=A8=E7=9A=84=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 | 2 +- .../tenement/components/bindMeter/index.js | 10 +++++----- .../tenement/components/unBindMeter/index.js | 10 +++++----- pages/workBenchNew/components/installMeter/index.js | 8 +++++++- .../workBenchTenement/components/bindMeter/index.js | 12 ++++++------ .../components/unBindMeter/index.js | 12 ++++++------ 6 files changed, 30 insertions(+), 24 deletions(-) diff --git a/components/searchSelect/index.js b/components/searchSelect/index.js index 558a7ca..b9b3870 100644 --- a/components/searchSelect/index.js +++ b/components/searchSelect/index.js @@ -222,7 +222,7 @@ Component({ }, async onSearchInventoryMeter() { const { searchText = "", park, filterBind } = this.data; - const { code, message, data: parks = [] } = await getInventoryMeter({keyword: searchText, park, isNeedBind: !filterBind, a : 1}); + const { code, message, data: parks = [] } = await getInventoryMeter({keyword: searchText, park, isNeedBind: !filterBind, status: 1}); if (code !== OK) { alertInfo(message) return diff --git a/pages/workBench/components/tenement/components/bindMeter/index.js b/pages/workBench/components/tenement/components/bindMeter/index.js index 3be41b4..9710e08 100644 --- a/pages/workBench/components/tenement/components/bindMeter/index.js +++ b/pages/workBench/components/tenement/components/bindMeter/index.js @@ -70,11 +70,11 @@ Component({ tenement, { code: meter, - overall:overall? Number(overall) : overall, - critical : critical ? Number(critical) : critical, - peak: peak ? Number(peak) : peak, - valley : valley ? Number(valley) : valley, - deepValley : deepValley ? Number(deepValley) : deepValley, + overall:overall? Number(overall) : (overall === "" ? null : overall), + critical : critical ? Number(critical) : (critical === "" ? null : critical), + peak: peak ? Number(peak) : (peak === "" ? null : peak), + valley : valley ? Number(valley) : (valley === "" ? null : valley), + deepValley : deepValley ? Number(deepValley) : (deepValley === "" ? null : deepValley), readAt: readAt || dayjs().format('YYYY-MM-DD HH:mm:ss') } ) diff --git a/pages/workBench/components/tenement/components/unBindMeter/index.js b/pages/workBench/components/tenement/components/unBindMeter/index.js index f3d72e2..87b9868 100644 --- a/pages/workBench/components/tenement/components/unBindMeter/index.js +++ b/pages/workBench/components/tenement/components/unBindMeter/index.js @@ -75,11 +75,11 @@ Component({ tenement, meterId, { - overall:overall? Number(overall) : overall, - critical : critical ? Number(critical) : critical, - peak: peak ? Number(peak) : peak, - valley : valley ? Number(valley) : valley, - deepValley: deepValley ? Number(deepValley) : deepValley, + overall:overall? Number(overall) : (overall === "" ? null : overall), + critical : critical ? Number(critical) : (critical === "" ? null : critical), + peak: peak ? Number(peak) : (peak === "" ? null : peak), + valley : valley ? Number(valley) : (valley === "" ? null : valley), + deepValley: deepValley ? Number(deepValley) : (deepValley === "" ? null : deepValley), readAt: readAt || dayjs().format('YYYY-MM-DD HH:mm:ss') }); if (code !== OK) { diff --git a/pages/workBenchNew/components/installMeter/index.js b/pages/workBenchNew/components/installMeter/index.js index 367a54e..b12503a 100644 --- a/pages/workBenchNew/components/installMeter/index.js +++ b/pages/workBenchNew/components/installMeter/index.js @@ -428,7 +428,13 @@ Page({ const { code, data, message } = await installMeter({ park, meterSn: meter, address, building, meterBox, meterType, ratio, area, card, collectionA, collectionB, collectionC, - tenement, sharp, peak, flat, valley, overall, url, sn + tenement, + sharp: sharp === "" ? null : sharp, + peak: peak === "" ? null : peak, + flat: flat === "" ? null : flat, + valley: valley === "" ? null : valley, + overall: overall === "" ? null : overall, + url, sn }) if (code !== OK) { alertInfo(message) diff --git a/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.js b/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.js index 9c14c04..086d5a5 100644 --- a/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.js +++ b/pages/workBenchNew/components/workBenchTenement/components/bindMeter/index.js @@ -70,12 +70,12 @@ Component({ tenement, { code: meter, - overall:overall? Number(overall) : overall, - critical : critical ? Number(critical) : critical, - peak: peak ? Number(peak) : peak, - flat: flat ? Number(flat) : flat, - valley : valley ? Number(valley) : valley, - deepValley: deepValley ? Number(deepValley) : deepValley, + overall:overall? Number(overall) : (overall === "" ? null : overall), + critical : critical ? Number(critical) : (critical === "" ? null : critical), + peak: peak ? Number(peak) : (peak === "" ? null : peak), + flat: flat ? Number(flat) : (flat === "" ? null : flat), + valley : valley ? Number(valley) : (valley === "" ? null : valley), + deepValley: deepValley ? Number(deepValley) : (deepValley === "" ? null : deepValley), readAt: readAt || dayjs().format('YYYY-MM-DD HH:mm:ss') } ) diff --git a/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.js b/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.js index 9aebbd2..883c9e5 100644 --- a/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.js +++ b/pages/workBenchNew/components/workBenchTenement/components/unBindMeter/index.js @@ -81,12 +81,12 @@ Component({ tenement, meterId, { - overall:overall? Number(overall) : overall, - critical : critical ? Number(critical) : critical, - peak: peak ? Number(peak) : peak, - flat: flat ? Number(flat) : flat, - valley : valley ? Number(valley) : valley, - deepValley: deepValley ? Number(deepValley) : deepValley, + overall:overall? Number(overall) : (overall === "" ? null : overall), + critical : critical ? Number(critical) : (critical === "" ? null : critical), + peak: peak ? Number(peak) : (peak === "" ? null : peak), + flat: flat ? Number(flat) : (flat === "" ? null : flat), + valley : valley ? Number(valley) : (valley === "" ? null : valley), + deepValley: deepValley ? Number(deepValley) : (deepValley === null ? "" : deepValley), readAt: readAt || dayjs().format('YYYY-MM-DD HH:mm:ss') }); if (code !== OK) { -- 2.49.1 From 4779cc1718ac42ef2a8b1c0dbc5b9d5b0aa94c35 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Tue, 18 Nov 2025 15:11:05 +0800 Subject: [PATCH 44/51] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=83=A8=E5=88=86=E5=AD=97=E6=AE=B5,?= =?UTF-8?q?=E8=A3=85=E8=A1=A8=E6=96=B0=E5=A2=9E=E9=87=87=E9=9B=86=E5=99=A8?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E6=94=B9=E5=B7=A5=E5=8D=95=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=9A=84=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 | 17 +++++++++- .../components/installMeter/index.js | 33 +++++++++++++++++-- .../components/installMeter/index.wxml | 8 +++++ pages/workBenchTodoList/index.js | 4 +-- pages/workBenchTodoList/index.wxml | 2 +- pages/workOrderDetail/index.js | 7 +++- pages/workOrderDetail/index.json | 3 +- pages/workOrderDetail/index.wxml | 33 +++++++++++++++++++ service/meter.js | 5 +++ 9 files changed, 104 insertions(+), 8 deletions(-) diff --git a/components/searchSelect/index.js b/components/searchSelect/index.js index b9b3870..9b1c4bc 100644 --- a/components/searchSelect/index.js +++ b/components/searchSelect/index.js @@ -1,5 +1,5 @@ import { getLoginParkList, getParkBuildingList } from "../../service/park" -import { getParkSimpleMeterList, getParkBoxList, getCardList, getCollectionList, getInventoryMeter } from "../../service/meter" +import { getParkSimpleMeterList, getParkBoxList, getCardList, getCollectionList, getInventoryMeter, getCollectorList } from "../../service/meter" import { alertInfo } from "../../utils/index"; import request from "../../utils/request" import { payWays, feeType, meterType, noticeFlowType, noticeFlowStatus, @@ -176,8 +176,23 @@ Component({ case "collection": this.onSearchCollection(); return; + case "collector": + this.onSearchCollector(); + break; } }, + async onSearchCollector() { + const { searchText = "", } = this.data; + const { code, message, data = [] } = await getCollectorList(searchText); + if (code !== OK) { + alertInfo(message) + return + } + this.setData({ + columns: data?.map(item => `${item.collectorAddress}-${item.manufacturer}`), + list: data, + }) + }, async onSearchPark() { const { searchText = "" } = this.data; const { code, message, data: parks = [] } = await getLoginParkList({keyword: searchText}); diff --git a/pages/workBenchNew/components/installMeter/index.js b/pages/workBenchNew/components/installMeter/index.js index b12503a..e69f17e 100644 --- a/pages/workBenchNew/components/installMeter/index.js +++ b/pages/workBenchNew/components/installMeter/index.js @@ -146,6 +146,27 @@ Page({ collection: "C" }) }, + onBindCollector() { + const { park } = this.data; + if (!park) { + alertInfo("请先选择园区") + return; + } + this.setData({ + show: true, + title: "采集器", + type: 'collector', + }) + }, + clearCollector() { + this.setData({ + show: false, + title: "", + type: 'collector', + collector: null, + collectorName: null, + }) + }, uploadImage() { const that = this; wx.chooseMedia({ @@ -204,6 +225,8 @@ Page({ flat: null, valley: null, area: null, + collector: null, + collectorName: null, collections: [], }) }, @@ -258,6 +281,12 @@ Page({ meterTypeName: data, }); break; + case "collector": + this.setData({ + collector: data?.id, + collectorName: `${data.collectorAddress}-${data.manufacturer}`, + }); + break; case "meter": this.setData({ meter: data.id, @@ -403,7 +432,7 @@ Page({ park, meter, address, building, meterBox, meterType, ratio, area, card, collectionA, collectionB, collectionC, tenement, sharp, peak, flat, valley, overall, url, sn, - collectionARatio, collectionBRatio, collectionCRatio + collectionARatio, collectionBRatio, collectionCRatio, collector, } = this.data; if (!park || !(meter || sn) || !address || meterType == null || !building || !meterBox || ratio == null) { alertInfo("请填写必填项后保存") @@ -434,7 +463,7 @@ Page({ flat: flat === "" ? null : flat, valley: valley === "" ? null : valley, overall: overall === "" ? null : overall, - url, sn + url, sn, collector }) if (code !== OK) { alertInfo(message) diff --git a/pages/workBenchNew/components/installMeter/index.wxml b/pages/workBenchNew/components/installMeter/index.wxml index a103bd3..8d12cdb 100644 --- a/pages/workBenchNew/components/installMeter/index.wxml +++ b/pages/workBenchNew/components/installMeter/index.wxml @@ -90,6 +90,14 @@ allowClear="{{true}}" bind:clear="clearCard" /> + - {{ noticeFlowType[item.types - 1] }} + {{ noticeFlowTypeList[item.types - 1] }} diff --git a/pages/workOrderDetail/index.js b/pages/workOrderDetail/index.js index e514826..bc67909 100644 --- a/pages/workOrderDetail/index.js +++ b/pages/workOrderDetail/index.js @@ -11,7 +11,12 @@ Page({ * 页面的初始数据 */ data: { - detail: {} + detail: {}, + header: [ + // { key: 'address', title: '电表地址', renderBody: (item) => item.meter?.address }, + { title: '操作人',renderBody: (item) => { return item.user_name } }, + { title: '状态',renderBody: (item) => { return item.status === 0 ? "未确认" : "已确认" } }, + ], }, /** diff --git a/pages/workOrderDetail/index.json b/pages/workOrderDetail/index.json index 827f19a..c9ed298 100644 --- a/pages/workOrderDetail/index.json +++ b/pages/workOrderDetail/index.json @@ -3,7 +3,8 @@ "navigator": "/components/navigator/index", "van-popup": "@vant/weapp/popup/index", "van-field": "@vant/weapp/field/index", - "van-button": "@vant/weapp/button/index" + "van-button": "@vant/weapp/button/index", + "custom-table": "/components/table/table" }, "navigationStyle": "custom" } \ No newline at end of file diff --git a/pages/workOrderDetail/index.wxml b/pages/workOrderDetail/index.wxml index a369acc..a4c5f9e 100644 --- a/pages/workOrderDetail/index.wxml +++ b/pages/workOrderDetail/index.wxml @@ -36,6 +36,39 @@ - + + + + + + + + 确认 diff --git a/service/meter.js b/service/meter.js index ff1afe8..ab96a3a 100644 --- a/service/meter.js +++ b/service/meter.js @@ -78,4 +78,9 @@ export const installMeter = async function(data) { // 拆表 export const uninstallMeter = async function(data) { return await POST(`/flow/doMeterRemoveApproval`, data); +} + +// 获取商户下的电表,后台 +export const getCollectorList = async function(keyword) { + return await GET(`/collector/list?collectorAddress=${replaceSpecialIcon(keyword)}`); } \ No newline at end of file -- 2.49.1 From 51a50fcd8d48ca9df19270b7c68f1a900d272f52 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Tue, 18 Nov 2025 16:04:56 +0800 Subject: [PATCH 45/51] =?UTF-8?q?=E7=A1=AE=E8=AE=A4=E5=B7=A5=E5=8D=95?= =?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 --- pages/workBenchTodoList/index.js | 4 ++++ pages/workBenchTodoList/index.wxml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pages/workBenchTodoList/index.js b/pages/workBenchTodoList/index.js index 6b8133b..84c5a6d 100644 --- a/pages/workBenchTodoList/index.js +++ b/pages/workBenchTodoList/index.js @@ -85,6 +85,10 @@ onMenuSelect(e) { this.handleDoNotice(id); break; } +}, +handleDoNoticeBtn(e) { + const id = e.currentTarget.dataset.id; + this.handleDoNotice(id) }, async handleDoNotice(id) { const { code, message } = await doNoticeFlow(id) diff --git a/pages/workBenchTodoList/index.wxml b/pages/workBenchTodoList/index.wxml index 2f31823..7655ff8 100644 --- a/pages/workBenchTodoList/index.wxml +++ b/pages/workBenchTodoList/index.wxml @@ -64,7 +64,7 @@ class="primaryTextBtn" wx:if="{{item.flow_status === 1}}" data-id="{{item.id}}" - bind:tap="handleDoNotice" + bind:tap="handleDoNoticeBtn" > 确认 已确认 -- 2.49.1 From 7a33dad81bb2e9822588a500e869bec746d74ec2 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Tue, 18 Nov 2025 16:35:16 +0800 Subject: [PATCH 46/51] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/workBenchTodoList/index.wxml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/workBenchTodoList/index.wxml b/pages/workBenchTodoList/index.wxml index 7655ff8..2f96d6f 100644 --- a/pages/workBenchTodoList/index.wxml +++ b/pages/workBenchTodoList/index.wxml @@ -62,7 +62,7 @@ 确认 -- 2.49.1 From 972a267c367aea0b289381837f22b66692c61e08 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Wed, 19 Nov 2025 08:48:21 +0800 Subject: [PATCH 47/51] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E4=B8=8D=E6=98=BE=E7=A4=BA=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/workOrderDetail/index.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pages/workOrderDetail/index.json b/pages/workOrderDetail/index.json index c9ed298..653d399 100644 --- a/pages/workOrderDetail/index.json +++ b/pages/workOrderDetail/index.json @@ -4,7 +4,8 @@ "van-popup": "@vant/weapp/popup/index", "van-field": "@vant/weapp/field/index", "van-button": "@vant/weapp/button/index", - "custom-table": "/components/table/table" + "custom-table": "/components/table/table", + "van-image": "@vant/weapp/image/index" }, "navigationStyle": "custom" } \ No newline at end of file -- 2.49.1 From 6fee2d0435de3ae7416efefe07f1632a3af26ec6 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Wed, 19 Nov 2025 10:28:20 +0800 Subject: [PATCH 48/51] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=94=B5=E8=A1=A8=E6=8E=A5=E5=8F=A3=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/searchSelect/index.js | 22 +++++++++++++++++++++- pages/workBenchTodoList/index.js | 6 +++--- service/meter.js | 5 +++++ service/workBench.js | 3 ++- 4 files changed, 31 insertions(+), 5 deletions(-) diff --git a/components/searchSelect/index.js b/components/searchSelect/index.js index 9b1c4bc..14279c1 100644 --- a/components/searchSelect/index.js +++ b/components/searchSelect/index.js @@ -1,5 +1,10 @@ import { getLoginParkList, getParkBuildingList } from "../../service/park" -import { getParkSimpleMeterList, getParkBoxList, getCardList, getCollectionList, getInventoryMeter, getCollectorList } from "../../service/meter" +import { + getParkSimpleMeterList, getParkBoxList, + getCardList, getCollectionList, + getInventoryMeter, getCollectorList, + getWorkOrderAllMeter, +} from "../../service/meter" import { alertInfo } from "../../utils/index"; import request from "../../utils/request" import { payWays, feeType, meterType, noticeFlowType, noticeFlowStatus, @@ -179,6 +184,9 @@ Component({ case "collector": this.onSearchCollector(); break; + case "workOrderMeter": + this.onSearchWorkOrderMeter(); + break; } }, async onSearchCollector() { @@ -193,6 +201,18 @@ Component({ list: data, }) }, + async onSearchWorkOrderMeter() { + const { searchText = "", park } = this.data; + const { code, message, data = [] } = await getWorkOrderAllMeter({keyword: searchText, park: park, page: 1, size: 20}); + if (code !== OK) { + alertInfo(message) + return + } + this.setData({ + columns: data?.map(item => `${item.address}-${item.meter_no}`), + list: data, + }) + }, async onSearchPark() { const { searchText = "" } = this.data; const { code, message, data: parks = [] } = await getLoginParkList({keyword: searchText}); diff --git a/pages/workBenchTodoList/index.js b/pages/workBenchTodoList/index.js index 84c5a6d..ecd4a4c 100644 --- a/pages/workBenchTodoList/index.js +++ b/pages/workBenchTodoList/index.js @@ -147,9 +147,9 @@ handleDoNoticeBtn(e) { }) }); break; - case "meter": + case "workOrderMeter": this.setData({ - meter: data.id, + meter: data.meter_id, meterName: data.address, meterInfo: data, page: 1, @@ -199,7 +199,7 @@ handleDoNoticeBtn(e) { this.setData({ show: true, title: "电表", - type: 'meter' + type: 'workOrderMeter' }) }, onChangePage(e) { diff --git a/service/meter.js b/service/meter.js index ab96a3a..e5ed6af 100644 --- a/service/meter.js +++ b/service/meter.js @@ -83,4 +83,9 @@ export const uninstallMeter = async function(data) { // 获取商户下的电表,后台 export const getCollectorList = async function(keyword) { return await GET(`/collector/list?collectorAddress=${replaceSpecialIcon(keyword)}`); +} + +// 微信工单列表查询所有电表 +export const getWorkOrderAllMeter = async function({ keyword, park, page = 1, size = 20 }) { + return await GET(`/vx/getAllMeter?keyword=${replaceSpecialIcon(keyword)}&pid=${park}&page=${page}&size=${size}`,); } \ No newline at end of file diff --git a/service/workBench.js b/service/workBench.js index a616200..e52212a 100644 --- a/service/workBench.js +++ b/service/workBench.js @@ -63,7 +63,8 @@ export const doNoticeFlow = async function(id) { return await PUT(`/noticeFlow/${id}/meter/dispose`,); } -// 确认当前流程 +// 当前流程详情 export const getNoticeFlowDetail = async function(id) { return await GET(`/noticeFlow/${id}/detail`,); } + -- 2.49.1 From 0ef96344cecd44d020ad3a7b6499b41ffb01a481 Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Wed, 19 Nov 2025 10:58:16 +0800 Subject: [PATCH 49/51] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/workBenchTodoList/index.js | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/pages/workBenchTodoList/index.js b/pages/workBenchTodoList/index.js index ecd4a4c..801652b 100644 --- a/pages/workBenchTodoList/index.js +++ b/pages/workBenchTodoList/index.js @@ -36,7 +36,7 @@ Page({ }, onClearPark() { const that = this; - this.setData({ park: null, parkName: null, meter: null, meterName: null }, () => { + this.setData({ park: "", parkName: "", meter: "", meterName: "" }, () => { loadingFunc(async () => { await that.init() }) @@ -44,7 +44,7 @@ onClearPark() { }, onClearMeter() { const that = this; - this.setData({ meter: null, meterName: null }, () => { + this.setData({ meter: "", meterName: "" }, () => { loadingFunc(async () => { await that.init() }) @@ -52,7 +52,7 @@ onClearMeter() { }, onClearType() { const that = this; - this.setData({ noticeFlowType: null, noticeFlowTypeName: null }, () => { + this.setData({ noticeFlowType: "", noticeFlowTypeName: "" }, () => { loadingFunc(async () => { await that.init() }) @@ -60,7 +60,7 @@ onClearType() { }, onClearStatus() { const that = this; - this.setData({ noticeFlowStatus: null, noticeFlowStatusName: null }, () => { + this.setData({ noticeFlowStatus: "", noticeFlowStatusName: "" }, () => { loadingFunc(async () => { await that.init() }) @@ -68,7 +68,7 @@ onClearStatus() { }, hideActionMenu() { this.setData({ - currentActionSheet: null + currentActionSheet: "" }); }, onMenuSelect(e) { @@ -114,8 +114,8 @@ handleDoNoticeBtn(e) { switch(type) { case "park": this.setData({ - park: data.id, - parkName: data.name, + park: data?.id, + parkName: data?.name, }) break; case "tenement": @@ -149,8 +149,8 @@ handleDoNoticeBtn(e) { break; case "workOrderMeter": this.setData({ - meter: data.meter_id, - meterName: data.address, + meter: data?.meter_id, + meterName: data?.address, meterInfo: data, page: 1, }, () => { @@ -213,7 +213,8 @@ handleDoNoticeBtn(e) { }) }, async init() { - const { page, size, park, tenement, meter, noticeFlowType, noticeFlowStatus, time } = this.data; + 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) -- 2.49.1 From 990a3a17aa00a25b6d5c974bcd19fe08f1c8914d Mon Sep 17 00:00:00 2001 From: qiaomu <3520484422@qq.com> Date: Fri, 21 Nov 2025 16:25:43 +0800 Subject: [PATCH 50/51] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E7=82=B9=E5=87=BB=E5=88=97=E8=A1=A8=E8=BF=9B=E5=85=A5=E8=AF=A6?= =?UTF-8?q?=E6=83=85=EF=BC=8C=E6=96=B0=E8=A3=85=E7=94=B5=E8=A1=A8=E7=9A=84?= =?UTF-8?q?=E9=80=82=E5=90=88=E6=A0=B9=E6=8D=AE=E7=94=B5=E8=A1=A8=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E6=98=BE=E7=A4=BA=E5=95=86=E6=88=B7=E5=92=8C=E5=B0=96?= =?UTF-8?q?=E5=B3=B0=E5=B9=B3=E8=B0=B7=EF=BC=8C=E6=8B=86=E8=A1=A8=E7=9A=84?= =?UTF-8?q?=E6=97=B6=E5=80=99=E6=98=AF=E5=95=86=E6=88=B7=E8=A1=A8=E7=9A=84?= =?UTF-8?q?=E6=97=B6=E5=80=99=E4=BA=8C=E6=AC=A1=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/installMeter/index.js | 26 +++++++++- .../components/installMeter/index.wxml | 13 +++++ .../components/uninstallMeter/index.js | 49 ++++++++++++++----- pages/workBenchTodoList/index.js | 6 +++ pages/workBenchTodoList/index.wxml | 13 +++-- pages/workOrderDetail/index.js | 1 - pages/workOrderDetail/index.wxml | 4 +- 7 files changed, 89 insertions(+), 23 deletions(-) diff --git a/pages/workBenchNew/components/installMeter/index.js b/pages/workBenchNew/components/installMeter/index.js index e69f17e..d9ebac9 100644 --- a/pages/workBenchNew/components/installMeter/index.js +++ b/pages/workBenchNew/components/installMeter/index.js @@ -224,6 +224,7 @@ Page({ peak: null, flat: null, valley: null, + deepValley: null, area: null, collector: null, collectorName: null, @@ -233,7 +234,7 @@ Page({ onConfirm(e) { console.log("e", e) const { type, data = {}, way } = e.detail; - const {collection, park, tenement} = this.data; + const {collection, park, meterType, tenement, tenementName, overall, sharp, flat, peak, valley, deepValley} = this.data; switch(type) { case "park": this.setData({ @@ -276,9 +277,23 @@ Page({ }) break; case "meterType": + let newMeterData = {}; + if (way !== 0) { + newMeterData = { + tenement: null, + tenementName: null, + overall: null, + sharp: null, + peak: null, + flat: null, + valley: null, + deepValley: null, + } + } this.setData({ meterType: way, meterTypeName: data, + ...newMeterData, }); break; case "collector": @@ -402,6 +417,11 @@ Page({ valley: e.detail }) }, + changeDeepValley(e) { + this.setData({ + deepValley: e.detail + }) + }, changeRatio(e) { this.setData({ ratio: e.detail, @@ -431,7 +451,7 @@ Page({ const { park, meter, address, building, meterBox, meterType, ratio, area, card, collectionA, collectionB, collectionC, - tenement, sharp, peak, flat, valley, overall, url, sn, + tenement, sharp, peak, flat, valley, deepValley, overall, url, sn, collectionARatio, collectionBRatio, collectionCRatio, collector, } = this.data; if (!park || !(meter || sn) || !address || meterType == null || !building || !meterBox || ratio == null) { @@ -463,6 +483,8 @@ Page({ flat: flat === "" ? null : flat, valley: valley === "" ? null : valley, overall: overall === "" ? null : overall, + deepValley: deepValley == "" ? null : deepValley, + url, sn, collector }) if (code !== OK) { diff --git a/pages/workBenchNew/components/installMeter/index.wxml b/pages/workBenchNew/components/installMeter/index.wxml index 8d12cdb..bde7fde 100644 --- a/pages/workBenchNew/components/installMeter/index.wxml +++ b/pages/workBenchNew/components/installMeter/index.wxml @@ -127,36 +127,49 @@ placeholder="请选择商户" text="{{ tenementName }}" bind:search="onTenementFocus" + wx:if="{{meterType === 0}}" /> + { + wx.navigateTo({ + url: '/pages/workBenchTodoList/index', + }) + }, 300) + return; } - alertSuccess("拆除成功") - setTimeout(() => { - wx.navigateTo({ - url: '/pages/workBenchTodoList/index', - }) - }, 300) + wx.showModal({ + title: '提示', + content: '拆出后电表和商户关系,电表和卡的关系会自动解绑,是否拆出', + complete: async (res) => { + if (res.cancel) { + + } + + if (res.confirm) { + const { code, message } = await uninstallMeter({sn: meter, images: url, reason, tenement: meterInfo.tenement, critical, peak, flat, valley, overall, deepOverall}) + if (code !== OK) { + alertInfo(message) + return + } + alertSuccess("拆除成功") + setTimeout(() => { + wx.navigateTo({ + url: '/pages/workBenchTodoList/index', + }) + }, 300) + return; + } + } + }) }, uploadImage() { const that = this; diff --git a/pages/workBenchTodoList/index.js b/pages/workBenchTodoList/index.js index 801652b..51ea683 100644 --- a/pages/workBenchTodoList/index.js +++ b/pages/workBenchTodoList/index.js @@ -108,6 +108,12 @@ handleDoNoticeBtn(e) { url: '/pages/workOrderDetail/index?id=' + id, }) }, + listJumpToDetail(e) { + const { id } = e.currentTarget.dataset; + wx.navigateTo({ + url: '/pages/workOrderDetail/index?id=' + id, + }) + }, onConfirm(e) { const { type, data = {}, way } = e.detail; const that = this; diff --git a/pages/workBenchTodoList/index.wxml b/pages/workBenchTodoList/index.wxml index 2f96d6f..7cdcb55 100644 --- a/pages/workBenchTodoList/index.wxml +++ b/pages/workBenchTodoList/index.wxml @@ -46,8 +46,8 @@ 操作 - - + + {{ item.time }} @@ -62,14 +62,14 @@ 确认 已确认 - + - - + diff --git a/pages/workOrderDetail/index.js b/pages/workOrderDetail/index.js index bc67909..f6e279e 100644 --- a/pages/workOrderDetail/index.js +++ b/pages/workOrderDetail/index.js @@ -6,7 +6,6 @@ const { OK } = request; // pages/workOrderDetail/index.js Page({ - /** * 页面的初始数据 */ diff --git a/pages/workOrderDetail/index.wxml b/pages/workOrderDetail/index.wxml index a4c5f9e..cedf8dc 100644 --- a/pages/workOrderDetail/index.wxml +++ b/pages/workOrderDetail/index.wxml @@ -48,12 +48,12 @@ readonly title-width="132rpx" /> - + /> --> Date: Thu, 27 Nov 2025 08:53:09 +0800 Subject: [PATCH 51/51] =?UTF-8?q?=E5=85=85=E5=80=BC=E5=92=8C=E5=BC=80?= =?UTF-8?q?=E7=A5=A8=E9=99=90=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/home/index.js | 17 ++++++++++++++++- pages/invoiceList/components/notyet/index.js | 14 +++++++++++++- project.private.config.json | 7 +++++++ 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/pages/home/index.js b/pages/home/index.js index cbea2c1..bcf3e81 100644 --- a/pages/home/index.js +++ b/pages/home/index.js @@ -1,6 +1,8 @@ // pages/home/index.js import { getMeterDetail, getMeterList, getTenementMeterList } from "../../service/meter"; -import { getOwnTenementList, getTenementExceptionalCase } from "../../service/tenement"; +import { getOwnTenementList, getTenementExceptionalCase , + getTenementBackInfo, getTenementDetail, getTenementInfoDetail, +} from "../../service/tenement"; import { alertInfo, alertSuccess } from "../../utils/index"; import request from '../../utils/request'; import { getDot } from "../../utils/system"; @@ -159,6 +161,19 @@ Page({ alertInfo("账号存在异常,无法进行充值,请联系客服处理") return; } + const { + code: tenementDetailCode, + message: tenementDetailMessage, + tenement: tenementDetail, + } = await getTenementBackInfo(park?.id, tenement?.id) + if (tenementDetailCode !== OK) { + alertInfo(tenementDetailMessage) + return + } + if (tenementDetail?.stop_top) { + alertInfo("您暂不可使用此功能,可联系客服处理。") + return; + } const that = this; if (!user || !user.id) { alertInfo("请先登录") diff --git a/pages/invoiceList/components/notyet/index.js b/pages/invoiceList/components/notyet/index.js index aa9fe41..6c10e41 100644 --- a/pages/invoiceList/components/notyet/index.js +++ b/pages/invoiceList/components/notyet/index.js @@ -1,5 +1,6 @@ // pages/invoiceList/components/notyet/index.js import { getInvoiceList } from '../../../../service/invoice'; +import { getTenementBackInfo } from '../../../../service/tenement'; import { alertInfo, loadingFunc } from '../../../../utils/index'; import request from '../../../../utils/request'; const { OK } = request; @@ -69,7 +70,18 @@ Component({ selectMoney: Number(selectMoney.toFixed(2)) }) }, - next() { + async next() { + const park = wx.getStorageSync("park") + const tenement = wx.getStorageSync("tenement") + const { code: detailCode, message: detailMessage, tenement: Detail } = await getTenementBackInfo(park?.id, tenement?.id) + if (detailCode !== OK) { + alertInfo(detailMessage) + return; + } + if (Detail?.stop_invoice) { + alertInfo("您暂不可使用此功能,可联系客服处理。") + return + } const { selectList, list, selectMoney, selectCount } = this.data; let tenementID = ""; let tenementName = ""; diff --git a/project.private.config.json b/project.private.config.json index 6409ae4..edd72a1 100644 --- a/project.private.config.json +++ b/project.private.config.json @@ -23,6 +23,13 @@ "condition": { "miniprogram": { "list": [ + { + "name": "pages/invoiceList/index", + "pathName": "pages/invoiceList/index", + "query": "", + "launchMode": "default", + "scene": null + }, { "name": "pages/workBenchNew/components/installMeter/index", "pathName": "pages/workBenchNew/components/installMeter/index", -- 2.49.1