台球开关台小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

230 lines
8.8 KiB

/**
* 订单详情页面
*/
import { View, Text, Image } from '@tarojs/components'
import Taro, { useLoad, useRouter } from '@tarojs/taro'
import { useState } from 'react'
import { ArrowDown } from '@taroify/icons'
import './index.scss'
// 使用本地图片资源
const phoneIcon = require('../../pageScan/startTable/images/phone.png')
const locationIcon = require('../../assets/icon/locationIcon.png')
const tableBgImg = require('../../pageScan/startTable/images/startBiliardCardBg.png')
const OrderDetail = () => {
const router = useRouter()
const { orderId } = router.params as { orderId?: string }
const [expanded, setExpanded] = useState(false) // 订单详情是否展开
const [couponExpanded, setCouponExpanded] = useState(false) // 优惠券详情是否展开
const [priceExpanded, setPriceExpanded] = useState(false) // 收费标准详情是否展开
useLoad(() => {
console.log('订单详情页面加载,订单ID:', orderId)
})
// 拨打电话
const handlePhoneCall = () => {
Taro.makePhoneCall({
phoneNumber: '100-666-XXXX',
}).catch((err) => {
console.error('拨打电话失败:', err)
})
}
// 切换展开/收起
const handleToggleExpand = () => {
setExpanded(!expanded)
}
return (
<View className="order-detail-page">
{/* 内容区域 */}
<View className="content-area">
{/* 台球桌信息卡片 */}
<View className="table-card" style={{ backgroundImage: `url(${tableBgImg})` }}>
{/* 顶部:类型和店名 */}
<View className="card-header">
<Text className="table-type"></Text>
<View className="phone-box" onClick={handlePhoneCall}>
<Image className="phone-icon" src={phoneIcon} mode="aspectFit" />
<Text className="phone-text"></Text>
</View>
</View>
{/* 台球桌标题和使用状态 */}
<View className="table-title-row">
<Text className="table-title">.-A03/3</Text>
<Text className="table-status"></Text>
</View>
{/* 位置信息 */}
<View className="location-info">
<Image className="location-icon" src={locationIcon} mode="aspectFit" />
<Text className="location-text"></Text>
</View>
</View>
{/* 开台订单信息卡片 */}
<View className="order-info-card">
{/* 顶部:开台方式和详情按钮 */}
<View className="order-header" onClick={handleToggleExpand}>
<View className="order-tag">
<Text className="tag-text"></Text>
</View>
<View className="detail-btn">
<Text className="detail-text"></Text>
<ArrowDown
className={`arrow-icon ${expanded ? 'expanded' : ''}`}
size="16px"
color="#646566"
/>
</View>
</View>
{/* 订单统计 */}
<View className="order-stats">
<View className="stat-item">
<Text className="stat-value">156</Text>
<Text className="stat-label"></Text>
</View>
<View className="stat-item">
<Text className="stat-value">100.00</Text>
<Text className="stat-label"></Text>
</View>
</View>
{/* 收费规则 */}
<View className="pricing-rules">
<View className="rules-content">
<Text className="rules-title"></Text>
<View className="price-row">
<View className="price-item">
<Text className="price-label"></Text>
<Text className="price-value">90.00/</Text>
</View>
<View className="price-item">
<Text className="price-label"></Text>
<Text className="price-value">80.00/</Text>
</View>
</View>
</View>
</View>
</View>
{/* 展开的详细信息 */}
{expanded && (
<>
{/* 支付信息卡片 */}
<View className="info-card">
<Text className="card-title"></Text>
<View className="info-row">
<Text className="info-label">线</Text>
<View className="info-value-box">
<Text className="info-desc">0</Text>
</View>
</View>
<View className="info-row">
<Text className="info-label"></Text>
<Text className="info-value">0</Text>
</View>
<View className="info-row">
<Text className="info-label"></Text>
<Text className="info-value">92.80</Text>
</View>
{/* 优惠券抵扣 - 可展开 */}
<View className="info-row expandable" onClick={() => setCouponExpanded(!couponExpanded)}>
<Text className="info-label"></Text>
<View className="info-right">
<Text className="info-desc"></Text>
<Text className="info-value">-96.00</Text>
<ArrowDown
className={`arrow-icon ${couponExpanded ? 'expanded' : ''}`}
size="16px"
color="#646566"
/>
</View>
</View>
{/* 优惠券展开内容 */}
{couponExpanded && (
<View className="expand-content coupon">
<Text className="expand-text">2</Text>
<Text className="expand-value">-96.00</Text>
</View>
)}
<View className="info-row total">
<Text className="info-label"></Text>
<Text className="info-value">92.8</Text>
</View>
</View>
{/* 开台信息卡片 */}
<View className="info-card">
<Text className="card-title"></Text>
<View className="info-row">
<Text className="info-label"></Text>
<Text className="info-value">XXXXXX店</Text>
</View>
<View className="info-row">
<Text className="info-label"></Text>
<Text className="info-value"> .-A03/3</Text>
</View>
<View className="info-row">
<Text className="info-label"></Text>
<Text className="info-value">2025-01-01 00:00:00</Text>
</View>
<View className="info-row">
<Text className="info-label">使</Text>
<Text className="info-value">156</Text>
</View>
<View className="info-row">
<Text className="info-label"></Text>
<Text className="info-value">987654321012345678</Text>
</View>
{/* 收费标准 - 可展开 */}
<View className="info-row expandable" onClick={() => setPriceExpanded(!priceExpanded)}>
<Text className="info-label"></Text>
<View className="info-right">
<Text className="info-value">80/</Text>
<ArrowDown
className={`arrow-icon ${priceExpanded ? 'expanded' : ''}`}
size="16px"
color="#646566"
/>
</View>
</View>
{/* 收费标准展开内容 */}
{priceExpanded && (
<View className="expand-content">
<Text className="expand-text">116.67/5</Text>
<Text className="expand-text"> 00:00-11:00 90/80/</Text>
<Text className="expand-text"> 11:00-24:00 100/90/</Text>
</View>
)}
<View className="info-row">
<Text className="info-label"></Text>
<Text className="info-value"></Text>
</View>
</View>
</>
)}
</View>
</View>
)
}
export default OrderDetail