diff --git a/src/app.config.ts b/src/app.config.ts index ccc2cd1..81ef32c 100644 --- a/src/app.config.ts +++ b/src/app.config.ts @@ -39,6 +39,7 @@ export default defineAppConfig({ 'timedStart/index', // 定时开台页面 'couponStart/index', // 团购券开台页面 'closeTable/index', // 关台页面 + 'renewFee/index', // 续费页面 ] } ], diff --git a/src/pageScan/closeTable/components/FooterButtons.tsx b/src/pageScan/closeTable/components/FooterButtons.tsx index 9e76305..be13b02 100644 --- a/src/pageScan/closeTable/components/FooterButtons.tsx +++ b/src/pageScan/closeTable/components/FooterButtons.tsx @@ -23,10 +23,8 @@ const FooterButtons = ({ type }: FooterButtonsProps) => { // 续费 const handleRecharge = () => { console.log('续费') - Taro.showToast({ - title: '功能开发中', - icon: 'none', - duration: 2000 + Taro.navigateTo({ + url: '/pageScan/renewFee/index' }) } diff --git a/src/pageScan/renewFee/index.config.ts b/src/pageScan/renewFee/index.config.ts new file mode 100644 index 0000000..b49c3fa --- /dev/null +++ b/src/pageScan/renewFee/index.config.ts @@ -0,0 +1,5 @@ +export default { + navigationBarTitleText: '续费', + navigationBarBackgroundColor: '#FFFFFF', + navigationBarTextStyle: 'black', +} diff --git a/src/pageScan/renewFee/index.scss b/src/pageScan/renewFee/index.scss new file mode 100644 index 0000000..41dddb0 --- /dev/null +++ b/src/pageScan/renewFee/index.scss @@ -0,0 +1,326 @@ +.renew-fee-page { + min-height: 100vh; + background-color: #F2F3F5; + padding-bottom: calc(120px + env(safe-area-inset-bottom)); // 为底部按钮留空间 + + // 内容区域 + .content-area { + padding: 30px; + + // 台球桌信息卡片 + .table-card { + background: url('../startTable/images/startBiliardCardBg.png') no-repeat center; + background-size: cover; + height: 190px; + border-radius: 12px; + padding: 24px; + display: flex; + flex-direction: column; + justify-content: space-between; + margin-bottom: 40px; + + // 顶部:类型和电话 + .card-header { + display: flex; + align-items: center; + justify-content: space-between; + + .table-type { + font-size: 25px; + color: #FFFFFF; + } + + .phone-box { + display: flex; + align-items: center; + gap: 8px; + + .phone-icon { + width: 28px; + height: 28px; + } + + .phone-text { + font-size: 25px; + color: #FFFFFF; + } + } + } + + // 台球桌标题和使用状态 + .table-title-row { + display: flex; + align-items: center; + gap: 20px; + + .table-title { + font-weight: bold; + font-size: 42px; + color: #FFFFFF; + line-height: 1.3; + } + + .table-status { + font-size: 42px; + color: #01CA68; + font-weight: bold; + line-height: 1.3; + } + } + + // 位置信息 + .location-info { + display: flex; + align-items: center; + gap: 8px; + + .location-icon { + width: 28px; + height: 28px; + } + + .location-text { + font-size: 25px; + color: #FFFFFF; + } + } + } + + // 开台订单信息卡片 + .order-info-card { + background-color: #FFFFFF; + border-radius: 12px; + padding: 30px; + margin-bottom: 30px; + + // 顶部:开台方式 + .order-header { + margin-bottom: 30px; + + .order-tag { + background-color: transparent; + border: 1px solid #FF6B00; + border-radius: 4px; + padding: 6px 12px; + display: inline-block; + + .tag-text { + font-size: 25px; + color: #FF6B00; + } + } + } + + // 订单统计 + .order-stats { + display: flex; + justify-content: space-around; + + .stat-item { + display: flex; + flex-direction: column; + align-items: center; + gap: 20px; + + .stat-value { + font-size: 37px; + color: #000000; + font-weight: 500; + } + + .stat-label { + font-size: 25px; + color: #8D8D8D; + } + } + } + + // 收费规则 + .pricing-rules { + padding-top: 30px; + border-top: 1px solid #F2F3F5; + + .rules-content { + background-color: #F2F3F5; + border-radius: 13px; + padding: 30px; + display: flex; + flex-direction: column; + gap: 25px; + + .rules-title { + font-weight: 400; + font-size: 29px; + color: #000000; + } + + .price-row { + display: flex; + justify-content: space-between; + align-items: center; + + .price-item { + display: flex; + align-items: center; + gap: 4px; + + .price-label { + font-size: 25px; + color: #8B8B8B; + } + + .price-value { + font-size: 25px; + color: #333333; + } + } + } + } + } + } + + // 续费金额卡片 + .renew-card { + background-color: #FFFFFF; + border-radius: 12px; + padding: 34px 30px; + margin-bottom: 30px; + + // 续费金额输入 + .renew-input-row { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 30px; + + .renew-label { + font-size: 31px; + color: #000000; + } + + .renew-stepper { + // 输入框相关 + --stepper-input-width: 100px; + --stepper-input-height: 56px; + --stepper-input-font-size: 31px; + --stepper-input-color: #000000; + --stepper-input-background-color: #FFFFFF; + + // 圆形风格 - 减号按钮 + --stepper-circular-decrease-button-color: #FFFFFF; + --stepper-circular-decrease-button-background-color: #565B66; + --stepper-circular-decrease-button-border-color: #565B66; + + // 圆形风格 - 加号按钮 + --stepper-circular-increase-button-color: #FFFFFF; + --stepper-circular-increase-button-background-color: #565B66; + --stepper-circular-increase-button-border-color: #565B66; + } + } + + // 分割线 + .divider { + height: 1px; + background-color: #E8E8E8; + margin: 30px 0; + } + + // 续费时长 + .duration-row { + display: flex; + align-items: center; + justify-content: space-between; + + .duration-label { + font-size: 31px; + color: #000000; + } + + .duration-value { + font-size: 31px; + color: #000000; + } + } + } + + // 支付方式 + .payment-cell { + background-color: #FFFFFF; + border-radius: 12px; + padding: 30px; + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 30px; + + .payment-label { + font-size: 31px; + color: #000000; + } + + .payment-right { + display: flex; + align-items: center; + gap: 8px; + + .payment-value { + font-size: 31px; + color: #000000; + } + } + } + } + + // 底部固定区域 + .footer-bar { + position: fixed; + bottom: 0; + left: 0; + right: 0; + display: flex; + align-items: center; + justify-content: space-between; + padding: 20px 30px; + padding-bottom: calc(20px + env(safe-area-inset-bottom)); + background-color: #FFFFFF; + box-shadow: 0px -2px 10px rgba(0, 0, 0, 0.1); + + .payment-info { + display: flex; + align-items: baseline; + + .payment-label { + font-size: 28px; + color: #000000; + margin-right: 8px; + } + + .payment-symbol { + font-size: 28px; + color: #000000; + } + + .payment-amount { + font-size: 45px; + color: #000000; + font-weight: 500; + } + } + + .confirm-btn { + width: 200px; + height: 88px; + background-color: #01CA68; + border-radius: 44px; + display: flex; + align-items: center; + justify-content: center; + + .confirm-text { + font-size: 33px; + color: #FFFFFF; + font-weight: 500; + } + } + } +} diff --git a/src/pageScan/renewFee/index.tsx b/src/pageScan/renewFee/index.tsx new file mode 100644 index 0000000..1d3e765 --- /dev/null +++ b/src/pageScan/renewFee/index.tsx @@ -0,0 +1,183 @@ +/** + * 续费页面 + */ +import { View, Text, Image } from '@tarojs/components' +import Taro, { useLoad } from '@tarojs/taro' +import { useState } from 'react' +import { Stepper } from '@taroify/core' +import './index.scss' + +// 使用本地图片资源 +const phoneIcon = require('../startTable/images/phone.png') +const locationIcon = require('../../assets/icon/locationIcon.png') + +const RenewFee = () => { + const [renewAmount, setRenewAmount] = useState(1000) // 续费金额 + const [paymentMethod] = useState('微信支付') // 支付方式 + + useLoad(() => { + console.log('续费页面加载') + }) + + // 拨打电话 + const handlePhoneCall = () => { + Taro.makePhoneCall({ + phoneNumber: '100-666-XXXX', + }).catch((err) => { + console.error('拨打电话失败:', err) + }) + } + + // 续费金额变化 + const handleRenewAmountChange = (value: number) => { + setRenewAmount(value) + } + + // 计算续费时长(以小时为单位,假设 28.8元/小时) + const calculateDuration = () => { + const hours = Math.floor(renewAmount / 28.8) + const minutes = Math.round((renewAmount / 28.8 - hours) * 60) + return `约${hours}小时${minutes}分钟` + } + + // 选择支付方式 + const handleSelectPayment = () => { + Taro.showToast({ + title: '暂时只支持微信支付', + icon: 'none', + duration: 2000 + }) + } + + // 立即续费 + const handleConfirmRenew = () => { + console.log('立即续费,金额:', renewAmount) + Taro.showToast({ + title: '功能开发中', + icon: 'none', + duration: 2000 + }) + } + + return ( + + {/* 内容区域 */} + + {/* 台球桌信息卡片 */} + + {/* 顶部:类型和店名 */} + + 中式台球 + + + 联系店长 + + + + {/* 台球桌标题和使用状态 */} + + 来力.山岩-A03/3号球桌 + 使用中... + + + {/* 位置信息 */} + + + 北京黑八大师联盟球厅店 + + + + {/* 开台订单信息卡片 */} + + {/* 开台方式标签 */} + + + 开台方式 + + + + {/* 订单统计 */} + + + 1小时56分 + 已消费时长 + + + 100.00元 + 已消费金额 + + + 6分钟 + 剩余时长 + + + + {/* 收费规则 */} + + + 收费规则 + + + 价格: + 90.00元/小时 + + + 折扣价: + 80.00元/小时 + + + + + + + {/* 续费金额卡片 */} + + {/* 续费金额输入 */} + + 续费金额(元) + + + + {/* 分割线 */} + + + {/* 续费时长 */} + + 续费时长 + {calculateDuration()} + + + + {/* 支付方式 */} + + 支付方式 + + {paymentMethod} + + + + + {/* 底部固定区域 */} + + + 需支付 + + {renewAmount.toFixed(2)} + + + 立即续费 + + + + ) +} + +export default RenewFee