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