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