From 0b568a81e57cd1e6bcb1d3a87885c9de0e35090b Mon Sep 17 00:00:00 2001
From: qiaomu <3520484422@qq.com>
Date: Wed, 17 Jul 2024 17:05:58 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E5=AD=98=E5=95=86=E5=9F=8E=E4=BF=AE?=
=?UTF-8?q?=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pages/home/index.js | 157 +++++-----------------------
pages/home/index.json | 1 -
pages/home/index.wxml | 89 +++-------------
pages/home/index.wxss | 96 -----------------
pages/recharge/index.js | 211 +++++++++++++++++++++++++++++++++-----
pages/recharge/index.json | 7 +-
pages/recharge/index.wxml | 137 +++++++++++++------------
pages/recharge/index.wxss | 119 +++++++++++++--------
8 files changed, 377 insertions(+), 440 deletions(-)
diff --git a/pages/home/index.js b/pages/home/index.js
index e15ccea..d913945 100644
--- a/pages/home/index.js
+++ b/pages/home/index.js
@@ -4,7 +4,6 @@ import { alertInfo, alertSuccess } from "../../utils/index";
import request from '../../utils/request';
import { getDot } from "../../utils/system";
import { getUserInfo } from "../../service/user"
-import { requestRecharge } from "../../service/recharge";
const { OK } = request;
// pages/home/index.js
Page({
@@ -23,10 +22,7 @@ Page({
meterList: [],
meterIndex: 0,
rechargeVisible: false,
- actions: [
- { name: '微信支付', },
- { name: '对公支付', disabled: true },
- ],
+ background: ['demo-text-1', 'demo-text-2', 'demo-text-3'],
},
/**
@@ -57,18 +53,24 @@ Page({
onReady() {
},
- async changeMeter() {
- const { meterList = [] } = this.data;
- const newColumns = meterList.map(item => { item.id = item.code; item.name = `${item.code} - ${item.address}`; return item; })
- this.setData({
- columns: newColumns,
- show: true,
- pickerType: "meter"
+ jumpToRecharge() {
+ wx.navigateTo({
+ url: '/pages/recharge/index',
})
},
- async refreshMeter() {
- const { meter } = this.data;
- this.handleGetMeterDetail(meter.id);
+
+ async setUser() {
+ const result = await getUserInfo();
+ if (result.code !== OK) {
+ // alertInfo(result.message)
+ const user = wx.getStorageSync('user')
+ this.setData({ user: user })
+ return;
+ }
+ this.setData({ user: result.data })
+ wx.setStorageSync('user', result.data)
+ // const user = wx.getStorageSync('user')
+ // this.setData({ user: user })
},
onOk(e) {
const { type, index, value } = e.detail;
@@ -100,10 +102,6 @@ Page({
tenement: value
})
- break;
- case "meter":
- const { code, id } = e.detail.value;
- this.handleGetMeterDetail(id)
break;
}
},
@@ -124,45 +122,9 @@ Page({
show: false,
})
},
- changeMoney(e) {
- const { money } = e.currentTarget.dataset;
- this.setData({
- money: money
- })
- },
- onChangeMoney(e) {
- this.setData({ money: e.detail })
- },
- async recharge() {
- const { user, money, meter, tenement, park } = this.data;
- const that = this;
- if (!user || !user.id) {
- alertInfo("请先登录")
- return
- }
- if (!money) {
- alertInfo("请先输入金额")
- return;
- }
- if (!meter?.code) {
- alertInfo("没有选择表计")
- return;
- }
- if (money < 0.01) {
- alertInfo("最少为1分")
- return
- }
- // wx.navigateTo({
- // url: `/pages/rechargeWay/index?money=${money}&address=${meter.address}&id=${meter?.id}&tenement=${tenement?.id}&park=${park.id}`,
- // })
- this.setData({ rechargeVisible: true })
- },
- jumpToInvoice() {
- wx.navigateTo({
- url: '/pages/invoiceList/index',
- })
- },
+
+
jumpToLogin() {
wx.navigateTo({
url: '/pages/login/index',
@@ -172,7 +134,6 @@ Page({
* 生命周期函数--监听页面显示
*/
onShow() {
-
this.getAllList();
this.watchTenement();
this.watchPark();
@@ -192,8 +153,8 @@ Page({
set: function (newVal) {
// const oldValue = value;
wx.setStorageSync('tenement', newVal)
- that.getMeters(newVal);
that.setUser();
+ // that.getMeters(newVal);
value = newVal;
}
});
@@ -250,24 +211,7 @@ Page({
wx.setStorageSync('meter', data?.[0] || {} )
// }
},
- jumpToElectric() {
- wx.navigateTo({
- url: '/pages/electricQuery/index',
- })
- },
- async setUser() {
- const result = await getUserInfo();
- if (result.code !== OK) {
- // alertInfo(result.message)
- const user = wx.getStorageSync('user')
- this.setData({ user: user })
- return;
- }
- this.setData({ user: result.data })
- wx.setStorageSync('user', result.data)
- // const user = wx.getStorageSync('user')
- // this.setData({ user: user })
- },
+
async getAllList() {
const { code, message, data } = await getOwnTenementList()
if (code !== OK) {
@@ -299,64 +243,11 @@ Page({
updateDatas.all = data;
this.setData({
...updateDatas
- }, () => {
- if (updateDatas?.tenement?.id) {
- this.getMeters({ id: updateDatas?.tenement?.id })
- }
})
},
- jumpToRecord() {
- wx.navigateTo({
- url: '/pages/rechargeRecord/index',
- })
- },
- jumpToOrder() {
- // alertInfo("尚未完成")
- wx.navigateTo({
- url: '/pages/billList/index',
- })
- },
- onCloseRechargeWay() {
- this.setData({ rechargeVisible: false })
- },
- onSelectRechargeWay(e) {
- switch(e.detail.name) {
- case "对公支付":
- alertInfo("开发中")
- break;
- default:
- this.wxRecharge();
- break;
- }
- },
- async wxRecharge() {
- const { money, meter, tenement, park } = this.data;
- const { code, message, data } = await requestRecharge({ money: Number(money), id: meter?.id, tenement: tenement?.id, park: park?.id })
- if (code !== OK) {
- alertInfo(message)
- return;
- }
- wx.requestPayment({
- timeStamp: data?.time,
- nonceStr: data?.nonceStr,
- package: "prepay_id=" + data?.prepay_id,
- paySign: data?.paySign,
- signType: 'RSA',
- success: (res) => {
- alertSuccess("充值成功")
- that.setData({
- money: null
- })
- },
- fail: (res) => {
- console.log('fail', res)
- alertInfo("请稍后重试")
- },
- complete: (res) => {
- console.log('complete')
- that.handleGetMeterDetail(meter.id)
- }
- })
+
+ jumpToShop() {
+ alertInfo("开发中");
},
/**
* 生命周期函数--监听页面隐藏
diff --git a/pages/home/index.json b/pages/home/index.json
index 205dfa6..48cd520 100644
--- a/pages/home/index.json
+++ b/pages/home/index.json
@@ -2,7 +2,6 @@
"usingComponents": {
"custom-status-bar": "/components/customStatusBar/index",
"van-icon": "@vant/weapp/icon/index",
- "van-button": "@vant/weapp/button/index",
"van-image": "@vant/weapp/image/index",
"avatar": "/components/avatar/index",
"van-field": "@vant/weapp/field/index",
diff --git a/pages/home/index.wxml b/pages/home/index.wxml
index 93a727e..75bf66e 100644
--- a/pages/home/index.wxml
+++ b/pages/home/index.wxml
@@ -33,83 +33,20 @@
欢迎使用华昌宝能用电管理系统!
-
-
-
-
- {{ tenement.shortName}} - {{ meter.address }}
- --
+
+
+
+
+ {{item}}
-
-
- 切换电表
-
-
-
-
- 电表编号:
- {{meter.code}}
- --
-
-
- 电表地址:
- {{meter.address}}
- --
-
-
- 电表余额:
-
- {{meter.money}}
- ---
-
-
- 刷新
-
-
-
-
-
-
- 请输入金额:
-
- ¥30
- ¥50
- ¥100
- ¥200
-
-
-
-
-
-
- 去缴费
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
diff --git a/pages/home/index.wxss b/pages/home/index.wxss
index 32e116e..dbf8fe2 100644
--- a/pages/home/index.wxss
+++ b/pages/home/index.wxss
@@ -59,105 +59,9 @@
white-space: nowrap;
}
-.rechargeWrapper {
- background: linear-gradient(to bottom, var(--middle-green), #fff );
- overflow: hidden;
-}
-
-.card {
- margin-top: 0rpx;
- margin-left: 46rpx;
- margin-right: 46rpx;
- border-radius: 30rpx;
- padding: 22rpx 30rpx;
- /* background-color: rgb(173, 217, 203); */
- background: linear-gradient(to bottom right, rgb(212, 240, 231), rgb(145, 206, 185));
-}
-
-.cardTop {
- display: flex;
- align-items: center;
-}
-
-.cardTopLeft {
- display: flex;
- align-items: center;
- flex: 1;
- font-size: 33rpx;
-}
-
-.cardContent {
- margin: 30rpx 20rpx 0;
-}
-
-.cardItem {
- display: flex;
- align-items: center;
- margin-bottom: 30rpx;
- font-size: 32rpx;
-}
-
-.cardItem:last-child {
- margin-bottom: 12rpx;
-}
-
-.cardItemValue {
- display: flex;
- flex: 1;
- align-items: center;
-}
-
-.cardItemValue .text {
- flex: 1;
-}
-
-.recharge {
- background: #fff;
- padding: 20rpx 30rpx;
- margin-top: 24rpx;
- margin-left: 46rpx;
- margin-right: 46rpx;
- margin-bottom: 30rpx;
- border-radius: 30rpx;
-}
-
-.operate {
- margin-left: 46rpx;
- margin-right: 46rpx;
- margin-bottom: 24rpx;
-}
-
.welcome {
margin-top: 20rpx;
margin-left: 30rpx;
font-size: 30rpx;
color: rgba(255,255,255, .85);
-}
-
-.moneyBox {
- display: flex;
- justify-content: space-between;
- margin-top: 30rpx;
-}
-
-.money {
- flex: 1;
- padding: 16rpx;
- display: flex;
- justify-content: center;
- align-items: center;
- border: 1rpx solid #ccc;
- margin-right: 30rpx;
-}
-
-.moneyInput {
- margin-top: 24rpx;
- margin-bottom: 24rpx;
-}
-
-.others {
- margin-left: 46rpx;
- margin-right: 46rpx;
- margin-top: 10rpx;
- margin-bottom: 40rpx;
}
\ No newline at end of file
diff --git a/pages/recharge/index.js b/pages/recharge/index.js
index 780ab6d..c8c7e82 100644
--- a/pages/recharge/index.js
+++ b/pages/recharge/index.js
@@ -1,32 +1,202 @@
-import { getMeterDetail } from "../../service/meter";
-import { getGlobalData, showModal } from "../../utils/index";
+import { getMeterDetail, getTenementMeterList } from "../../service/meter";
+import request from '../../utils/request';
+import { getUserInfo } from "../../service/user"
+import { alertInfo, alertSuccess, loadingFunc } from "../../utils/index";
+import { requestRecharge } from "../../service/recharge";
+const { OK } = request;
// pages/recharge/index.js
Page({
-
/**
* 页面的初始数据
*/
data: {
- money: 0,
- moneyIndex: -1,
- primaryColor: getGlobalData().primaryColor,
- defaultMoneyArray: [100, 200, 500, 1000, 2000],
- customFlag: false,
- detail: {}
+ meterList: [],
+ meter: {},
+ actions: [
+ { name: '微信支付', },
+ { name: '对公支付', disabled: true },
+ ],
+ user: {},
},
/**
* 生命周期函数--监听页面加载
*/
- onLoad(options) {
- const { tenement, code } = options
- this.init({ tenement, code })
- },
- async init(options) {
- const { code, message, data = {}} = await getMeterDetail(options)
+ onLoad() {
+ const tenement = wx.getStorageSync('tenement')
+ const park = wx.getStorageSync('park')
this.setData({
- detail: data
+ tenement, park
+ })
+ this.init(park, tenement)
+ },
+ async changeMeter() {
+ const { meterList = [] } = this.data;
+ const newColumns = meterList.map(item => { item.id = item.code; item.name = `${item.code} - ${item.address}`; return item; })
+ this.setData({
+ columns: newColumns,
+ show: true,
+ pickerType: "meter"
+ })
+ },
+ onOk(e) {
+ const { type } = e.detail;
+ switch(type) {
+ case "meter":
+ const { id } = e.detail.value;
+ this.handleGetMeterDetail(id)
+ break;
+ }
+ },
+ async init(park, tenement) {
+ this.getMeters({ id: tenement?.id })
+ },
+ async refreshMeter() {
+ const { meter } = this.data;
+ this.handleGetMeterDetail(meter.id);
+ },
+ async handleGetMeterDetail(meterId) {
+ const { tenement } = this.data;
+ const { code, message, data } = await getMeterDetail({ tenement: tenement?.id, id: meterId });
+ if (code !== OK) {
+ alertInfo(message);
+ return;
+ }
+ this.setData({
+ meter: data,
+ show: false,
+ })
+ },
+ onCancel() {
+ this.setData({
+ show: false,
+ })
+ },
+ async setUser() {
+ const result = await getUserInfo();
+ if (result.code !== OK) {
+ const user = wx.getStorageSync('user')
+ this.setData({ user: user })
+ return;
+ }
+ this.setData({ user: result.data })
+ wx.setStorageSync('user', result.data)
+ },
+ async recharge() {
+ const { user, money, meter, tenement, park } = this.data;
+ if (!user || !user.id) {
+ alertInfo("请先登录")
+ return
+ }
+ if (!money) {
+ alertInfo("请先输入金额")
+ return;
+ }
+ if (!meter?.code) {
+ alertInfo("没有选择表计")
+ return;
+ }
+ if (money < 0.01) {
+ alertInfo("最少为1分")
+ return
+ }
+ // wx.navigateTo({
+ // url: `/pages/rechargeWay/index?money=${money}&address=${meter.address}&id=${meter?.id}&tenement=${tenement?.id}&park=${park.id}`,
+ // })
+ this.setData({ rechargeVisible: true })
+ },
+ async getMeters({ id }) {
+ const { code, message, data } = await getTenementMeterList(id);
+ if (code !== OK) {
+ alertInfo(message)
+ this.setData({ meterList: [], meter: {} })
+ wx.setStorageSync('meter', {})
+ return;
+ }
+ this.setData({
+ meterList: data || [],
+ meter: (data?.[0] || {})
+ })
+ // if (!storageMeter) {
+ wx.setStorageSync('meter', data?.[0] || {} )
+ // }
+ },
+ changeMoney(e) {
+ const { money } = e.currentTarget.dataset;
+ this.setData({
+ money: money
+ })
+ },
+ onChangeMoney(e) {
+ this.setData({ money: e.detail })
+ },
+ onCloseRechargeWay() {
+ this.setData({ rechargeVisible: false })
+ },
+
+ onSelectRechargeWay(e) {
+ const that = this;
+ switch(e.detail.name) {
+ case "对公支付":
+ alertInfo("开发中")
+ break;
+ default:
+ loadingFunc(async () => {
+ await that.wxRecharge();
+ })
+ break;
+ }
+ },
+ jumpToRecord() {
+ wx.navigateTo({
+ url: '/pages/rechargeRecord/index',
+ })
+ },
+ jumpToOrder() {
+ // alertInfo("尚未完成")
+ wx.navigateTo({
+ url: '/pages/billList/index',
+ })
+ },
+ jumpToElectric() {
+ wx.navigateTo({
+ url: '/pages/electricQuery/index',
+ })
+ },
+ jumpToInvoice() {
+ wx.navigateTo({
+ url: '/pages/invoiceList/index',
+ })
+ },
+ async wxRecharge() {
+ const { money, meter, tenement, park } = this.data;
+ const that = this;
+ const { code, message, data } = await requestRecharge({ money: Number(money), id: meter?.id, tenement: tenement?.id, park: park?.id })
+ if (code !== OK) {
+ alertInfo(message)
+ return;
+ }
+ wx.requestPayment({
+ timeStamp: data?.time,
+ nonceStr: data?.nonceStr,
+ package: "prepay_id=" + data?.prepay_id,
+ paySign: data?.paySign,
+ signType: 'RSA',
+ success: (res) => {
+ alertSuccess("充值成功")
+ that.setData({
+ money: null
+ })
+ },
+ fail: (res) => {
+ console.log('fail', res)
+ alertInfo("请稍后重试")
+ },
+ complete: (res) => {
+ console.log('complete')
+ that.handleGetMeterDetail(meter.id)
+ }
})
},
/**
@@ -40,7 +210,7 @@ Page({
* 生命周期函数--监听页面显示
*/
onShow() {
-
+ this.setUser();
},
chooseMoney(e) {
const { money, index } = e.currentTarget.dataset;
@@ -69,13 +239,6 @@ Page({
money: money,
})
},
- async recharge() {
- const { detail = {}, money } = this.data;
- const confirmResult = await showModal({ title: "充值确认", content: `确认充值表号为${detail?.meter?.code}的表计${money}元吗?` });
- if (!confirmResult) {
- return;
- }
- },
/**
* 生命周期函数--监听页面隐藏
*/
diff --git a/pages/recharge/index.json b/pages/recharge/index.json
index 6618c57..60b1e57 100644
--- a/pages/recharge/index.json
+++ b/pages/recharge/index.json
@@ -4,7 +4,12 @@
"van-grid": "@vant/weapp/grid/index",
"van-grid-item": "@vant/weapp/grid-item/index",
"van-row": "@vant/weapp/row/index",
+ "van-button": "@vant/weapp/button/index",
+ "picker": "/components/picker/index",
+ "van-field": "@vant/weapp/field/index",
+ "van-action-sheet": "@vant/weapp/action-sheet/index",
"van-col": "@vant/weapp/col/index"
},
- "navigationBarTitleText": "充值"
+ "navigationBarTitleText": "充值",
+ "navigationStyle": "custom"
}
\ No newline at end of file
diff --git a/pages/recharge/index.wxml b/pages/recharge/index.wxml
index dc7674e..a206608 100644
--- a/pages/recharge/index.wxml
+++ b/pages/recharge/index.wxml
@@ -1,76 +1,77 @@
-
-
-
-
-
-
- 充值表号:
- {{ detail.meter.code }}
-
-
- 表计地址:
- {{ detail.meter.address }}
-
-
-
- 剩余金额:
- {{ detail.money }}
-
-
- 公司名称:
- {{ detail.tenement.name }}
-
-
-
-
- {{item}}
- 自定义
+
-
-
+
+ 请输入金额:
+
+ ¥30
+ ¥50
+ ¥100
+ ¥200
+
+
+
+
-
+ 去缴费
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/recharge/index.wxss b/pages/recharge/index.wxss
index a62e17e..46bb032 100644
--- a/pages/recharge/index.wxss
+++ b/pages/recharge/index.wxss
@@ -1,62 +1,99 @@
/* pages/recharge/index.wxss */
-.moneyBoxs {
- margin-top: 32rpx;
- display: flex;
- justify-content: space-between;
- align-items: center;
- flex-wrap: wrap;
+.rechargeWrapper {
+ background: linear-gradient(to bottom, var(--middle-green), #fff );
+ overflow: hidden;
+ padding-top: 30rpx;
}
-.moneyBox {
- width: 30%;
- height: 140rpx;
- display: flex;
- justify-content: center;
- align-items: center;
- margin-bottom: 24rpx;
+.card {
+ margin-top: 0rpx;
+ margin-left: 46rpx;
+ margin-right: 46rpx;
+ border-radius: 30rpx;
+ padding: 22rpx 30rpx;
+ /* background-color: rgb(173, 217, 203); */
+ background: linear-gradient(to bottom right, rgb(212, 240, 231), rgb(145, 206, 185));
}
-.chooseMeter {
+.cardTop {
display: flex;
align-items: center;
- margin-top: 10rpx;
}
-.selectMeter {
- margin-left: 24rpx;
+.cardTopLeft {
+ display: flex;
+ align-items: center;
+ flex: 1;
+ font-size: 33rpx;
+}
+
+.cardContent {
+ margin: 30rpx 20rpx 0;
+}
+
+.cardItem {
+ display: flex;
+ align-items: center;
+ margin-bottom: 30rpx;
+ font-size: 32rpx;
+}
+
+.cardItem:last-child {
+ margin-bottom: 12rpx;
+}
+
+.cardItemValue {
+ display: flex;
+ flex: 1;
+ align-items: center;
+}
+
+.cardItemValue .text {
+ flex: 1;
+}
+
+.recharge {
+ background: #fff;
+ padding: 20rpx 30rpx;
+ margin-top: 24rpx;
+ margin-left: 46rpx;
+ margin-right: 46rpx;
+ margin-bottom: 30rpx;
+ border-radius: 30rpx;
}
.operate {
- margin-top: 24rpx;
-}
-
-.input {
- height: 40rpx;
- width: 400rpx;
- line-height: 40rpx;
- border-radius: 20rpx;
- padding: 12rpx 14rpx 16rpx;
- /* border: 1rpx solid #ccc; */
-}
-
-.customInput {
- padding: 16rpx 24rpx;
-}
-
-.gridTitle {
+ margin-left: 46rpx;
+ margin-right: 46rpx;
margin-bottom: 24rpx;
}
-.colBottom {
- margin-top: 40rpx;
+
+
+.moneyBox {
+ display: flex;
+ justify-content: space-between;
+ margin-top: 30rpx;
}
-.title {
- font-weight: 600;
- font-size: 40rpx;
+.money {
+ flex: 1;
+ padding: 16rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ border: 1rpx solid #ccc;
+ margin-right: 30rpx;
+}
+
+.moneyInput {
+ margin-top: 20rpx;
margin-bottom: 20rpx;
}
-.content {
- font-size: 32rpx;
+.others {
+ margin-left: 46rpx;
+ margin-right: 46rpx;
+ margin-top: 10rpx;
+ margin-bottom: 40rpx;
}
\ No newline at end of file