diff --git a/src/components/DetailPopup/index.vue b/src/components/DetailPopup/index.vue new file mode 100644 index 0000000..adc2ae7 --- /dev/null +++ b/src/components/DetailPopup/index.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/src/components/DetailPopup/styles/index.scss b/src/components/DetailPopup/styles/index.scss new file mode 100644 index 0000000..57425d5 --- /dev/null +++ b/src/components/DetailPopup/styles/index.scss @@ -0,0 +1,9 @@ +.refund-popup { + border-radius: 15px 15px 0 0; + padding-bottom: 40px; +} + +.close { + top: 14px; + right: 12px; +} diff --git a/src/components/OrderCardItem/images/2025-07-11_160018.png b/src/components/OrderCardItem/images/2025-07-11_160018.png deleted file mode 100644 index 7dab29f..0000000 Binary files a/src/components/OrderCardItem/images/2025-07-11_160018.png and /dev/null differ diff --git a/src/components/OrderCardItem/images/icon_order.png b/src/components/OrderCardItem/images/icon_order.png deleted file mode 100644 index d566a3a..0000000 Binary files a/src/components/OrderCardItem/images/icon_order.png and /dev/null differ diff --git a/src/components/OrderCardItem/index.vue b/src/components/OrderCardItem/index.vue deleted file mode 100644 index 7ce305c..0000000 --- a/src/components/OrderCardItem/index.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - - - diff --git a/src/components/OrderCardItem/prompt.md b/src/components/OrderCardItem/prompt.md deleted file mode 100644 index 6f61c47..0000000 --- a/src/components/OrderCardItem/prompt.md +++ /dev/null @@ -1,16 +0,0 @@ -## 订单 Item 组件 - -组件名称:订单卡片组件 - -## 提示词: - -使用 uniapp + vue3 组合式 api 开发微信小程序,要求如下: -1、按照提供的图片高度还原交互设计 -2、要求布局样式结构简洁明了,class 命名请按照模块名称来命名,例如:.service-order-item -3、可以使用 uniapp 内置的组件 -4、订单状态有已取消、待确认、退款中、已退款、已完成状态,用颜色区分 -5、订单卡片有点击跳转订单详情交互 - -## 备注 - -仅供学习、交流使用,请勿用于商业用途。 diff --git a/src/components/OrderCardItem/styles/index.scss b/src/components/OrderCardItem/styles/index.scss deleted file mode 100644 index 8ddb982..0000000 --- a/src/components/OrderCardItem/styles/index.scss +++ /dev/null @@ -1,81 +0,0 @@ -.service-order-item { - background-color: #fff; - border-radius: 10px; - padding: 15px; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); -} - -.order-header { - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 10px; -} - -.order-icon { - width: 20px; - height: 20px; - border-radius: $uni-border-radius-circle; - background-color: #ffa500; - display: flex; - align-items: center; - justify-content: center; - margin-right: 10px; -} - -.order-title { - font-size: $uni-font-size-lg; - color: $uni-text-color; -} - -.order-status { - font-size: $uni-font-size-base; - padding: 5px 10px; - border-radius: 15px; -} - -.status-canceled { - color: $uni-text-color-grey; - border: 1px solid #999; -} - -.status-pending { - color: #ff4d94; - border: 1px solid #ff4d94; -} - -.status-refundProcessing { - color: #ff9900; - border: 1px solid #ff9900; -} - -.status-refunded { - color: #ff4d4f; - border: 1px solid #ff4d4f; -} - -.status-completed { - color: #28a745; - border: 1px solid #28a745; -} - -.order-details { - margin-top: 10px; -} - -.detail-item { - display: flex; - align-items: center; - margin-bottom: 10px; -} - -.detail-label { - font-size: $uni-font-size-base; - color: #666; - margin-right: 10px; -} - -.detail-value { - font-size: $uni-font-size-base; - color: $uni-text-color; -} diff --git a/src/components/RefundPopup/index.vue b/src/components/RefundPopup/index.vue new file mode 100644 index 0000000..ebea121 --- /dev/null +++ b/src/components/RefundPopup/index.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/src/components/RefundPopup/styles/index.scss b/src/components/RefundPopup/styles/index.scss new file mode 100644 index 0000000..57425d5 --- /dev/null +++ b/src/components/RefundPopup/styles/index.scss @@ -0,0 +1,9 @@ +.refund-popup { + border-radius: 15px 15px 0 0; + padding-bottom: 40px; +} + +.close { + top: 14px; + right: 12px; +} diff --git a/src/components/Stepper/index.vue b/src/components/Stepper/index.vue index f19b584..24b32fb 100644 --- a/src/components/Stepper/index.vue +++ b/src/components/Stepper/index.vue @@ -32,7 +32,7 @@ const props = defineProps({ }); // Emit -const emit = defineEmits(["update:modelValue"]); +const emit = defineEmits(["update:modelValue", "decrease", "increase"]); // Local state const value = ref(props.modelValue); @@ -53,6 +53,7 @@ const decrease = () => { if (value.value > props.min) { value.value--; emit("update:modelValue", value.value); + emit("decrease"); } }; @@ -60,6 +61,7 @@ const increase = () => { if (value.value < props.max) { value.value++; emit("update:modelValue", value.value); + emit("increase"); } }; diff --git a/src/pages-booking/components/DateRangeSection/index.vue b/src/pages-booking/components/DateRangeSection/index.vue new file mode 100644 index 0000000..76772bd --- /dev/null +++ b/src/pages-booking/components/DateRangeSection/index.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/src/pages-booking/components/FooterSection/index.vue b/src/pages-booking/components/FooterSection/index.vue new file mode 100644 index 0000000..97c67c1 --- /dev/null +++ b/src/pages-booking/components/FooterSection/index.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/src/pages-booking/components/UserSection/index.vue b/src/pages-booking/components/UserSection/index.vue index aa2ca38..8819090 100644 --- a/src/pages-booking/components/UserSection/index.vue +++ b/src/pages-booking/components/UserSection/index.vue @@ -10,7 +10,11 @@ - + 住客姓名 - 【温泉季】戏水单人票 +单人简餐 + + - 温泉早鸟票2张 黄南武辣子鸡2人套餐1份 + 宽敞大床房/奶油ins风/交通便捷/投影电影/近地铁站/氛围灯/舒适温暖/出行必备/独享整套房源 + + + + 温泉早鸟票2张 黄南武辣子鸡2人套餐1份 + + + + 自助早餐券*2 + 自助早餐券*2 + 自助早餐券*2 + + 使用时间:周一至周日9:00-22:00 - 取消政策 @@ -44,16 +69,56 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/pages-order/order/components/RefundPopup/example.vue b/src/pages-order/order/components/RefundPopup/example.vue deleted file mode 100644 index a42c36c..0000000 --- a/src/pages-order/order/components/RefundPopup/example.vue +++ /dev/null @@ -1,274 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/pages-order/order/components/RefundPopup/index.vue b/src/pages-order/order/components/RefundPopup/index.vue deleted file mode 100644 index 65d26ea..0000000 --- a/src/pages-order/order/components/RefundPopup/index.vue +++ /dev/null @@ -1,154 +0,0 @@ - - - - - diff --git a/src/pages-order/order/components/RefundPopup/styles/index.scss b/src/pages-order/order/components/RefundPopup/styles/index.scss deleted file mode 100644 index c551bd0..0000000 --- a/src/pages-order/order/components/RefundPopup/styles/index.scss +++ /dev/null @@ -1,164 +0,0 @@ -// RefundPopup 退款弹窗样式 -.refund-popup { - width: 320px; - background: linear-gradient(173deg, #cbf6ff 3%, #ffffff 32%); - border-radius: 12px; - box-sizing: border-box; - padding-top: 64px; - position: relative; - box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); - - // 头部区域 - &__avatar { - width: 132px; - height: 132px; - position: absolute; - top: -75px; - left: 50%; - transform: translateX(-50%); - } - - // 内容区域 - &__content { - padding: 12px 20px 20px; - text-align: center; - } - - &__title { - font-size: $uni-font-size-lg; - font-weight: 500; - color: $uni-text-color; - line-height: 22px; - margin-bottom: 12px; - text-align: center; - } - - &__amount { - display: flex; - justify-content: center; - align-items: baseline; - margin-bottom: 4px; - - .amount-symbol { - font-size: $uni-font-size-sm; - color: #ff6a00; - } - - .amount-value { - font-size: 24px; - color: #ff6a00; - margin: 0 2px; - } - - .amount-unit { - font-size: $uni-font-size-sm; - color: #ff6a00; - } - } - - &__amount-label { - font-size: $uni-font-size-sm; - color: $uni-text-color; - margin-bottom: 16px; - } - - &__policy { - text-align: left; - margin-bottom: 16px; - - .policy-title { - font-size: $uni-font-size-base; - color: #007aff; - font-weight: 600; - margin-bottom: 8px; - } - - .policy-content { - font-size: $uni-font-size-sm; - color: $uni-text-color; - line-height: 22px; - text-align: justify; - } - } - - // 按钮区域 - &__actions { - display: flex; - gap: 12px; - padding: 0 20px 20px; - - .action-btn { - flex: 1; - height: 44px; - border-radius: 22px; - display: flex; - align-items: center; - justify-content: center; - font-size: $uni-font-size-lg; - transition: all 0.3s ease; - outline: none; - - &.secondary-btn { - background: #007aff; - color: #ffffff; - - &:active { - background: #0056cc; - transform: scale(0.98); - } - } - - &.primary-btn { - background: #ff9500; - color: #ffffff; - - &:active { - background: #e6850e; - transform: scale(0.98); - } - } - } - } - - // 关闭按钮 - &__close { - position: absolute; - bottom: -60px; - left: 50%; - transform: translateX(-50%); - width: 40px; - height: 40px; - } -} - -// 动画效果 -@keyframes popupFadeIn { - from { - opacity: 0; - transform: scale(0.8); - } - to { - opacity: 1; - transform: scale(1); - } -} - -@keyframes flowerBounce { - 0%, - 20%, - 50%, - 80%, - 100% { - transform: translateY(0); - } - 40% { - transform: translateY(-4px); - } - 60% { - transform: translateY(-2px); - } -} - -.refund-popup { - animation: popupFadeIn 0.3s ease-out; -} diff --git a/src/pages-order/order/detail.vue b/src/pages-order/order/detail.vue index 6cc1408..b692d1f 100644 --- a/src/pages-order/order/detail.vue +++ b/src/pages-order/order/detail.vue @@ -50,7 +50,7 @@ import GoodsInfo from "./components/GoodsInfo/index.vue"; import UserInfo from "./components/UserInfo/index.vue"; import NoticeInfo from "./components/NoticeInfo/index.vue"; import OrderInfo from "./components/OrderInfo/index.vue"; -import RefundPopup from "./components/RefundPopup/index.vue"; +import RefundPopup from "@/components/RefundPopup/index.vue"; const refundVisible = ref(false); const orderData = ref({}); diff --git a/src/pages-quick/components/Card/index.vue b/src/pages-quick/components/Card/index.vue index f5771b7..389fec5 100644 --- a/src/pages-quick/components/Card/index.vue +++ b/src/pages-quick/components/Card/index.vue @@ -61,6 +61,10 @@ const props = defineProps({ stockUnitLabel: "", // 库存单位 }), }, + selectedDate: { + type: Object, + default: () => {}, + }, }); const handleClick = ({ commodityId }) => { @@ -68,7 +72,10 @@ const handleClick = ({ commodityId }) => { }; const handleBooking = ({ commodityId }) => { - uni.navigateTo({ url: `/pages/booking/index?commodityId=${commodityId}` }); + const { startDate, endDate, totalDays } = props.selectedDate; + uni.navigateTo({ + url: `/pages-booking/index?commodityId=${commodityId}&startDate=${startDate}&endDate=${endDate}&totalDays=${totalDays}`, + }); }; diff --git a/src/pages-quick/list.vue b/src/pages-quick/list.vue index c2b94cd..c618134 100644 --- a/src/pages-quick/list.vue +++ b/src/pages-quick/list.vue @@ -50,7 +50,12 @@ - + diff --git a/src/static/scss/background.scss b/src/static/scss/background.scss index aae9d34..00eaf32 100644 --- a/src/static/scss/background.scss +++ b/src/static/scss/background.scss @@ -7,6 +7,10 @@ background-color: #f5f5f5; } +.bg-F7F7F7 { + background-color: #f7f7f7; +} + .bg-17294E { background-color: #17294e; } diff --git a/src/static/scss/padding.scss b/src/static/scss/padding.scss index 45fef9c..9f8fe70 100644 --- a/src/static/scss/padding.scss +++ b/src/static/scss/padding.scss @@ -1,4 +1,12 @@ // 内边距 +.pt-4 { + padding-top: 4px; +} + +.pb-4 { + padding-bottom: 4px; +} + .p-6 { padding: 6px; }