From d4f357d624b4e23d977b57c92d98ce909c304794 Mon Sep 17 00:00:00 2001
From: qiaomu <3520484422@qq.com>
Date: Fri, 19 Sep 2025 17:34:28 +0800
Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E5=8F=B0=E4=BF=AE=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