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 @@
-
-
-
-
-
- 订单编号:
- {{ orderId }}
-
-
- 游客人数:
- {{ touristCount }}人
-
-
-
-
-
-
-
-
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 @@
+
+
+
+ 入住
+
+ {{ selectedDate.startDate }}
+
+ 1晚
+ 离店
+
+ {{ selectedDate.endDate }}
+
+
+
+ 房间详情
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
- 鲜牛肉红烧牛肉面二两+例汤1份
- ¥128
-
-
- 红油干拌鲜肉云吞+例汤1份
- ¥50
-
-
- 总计:
- ¥178
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ 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;
}