From eda69d0269921f7209ce76de8c11e947867b5d1b Mon Sep 17 00:00:00 2001
From: Fox-33 <1466778434@qq.com>
Date: Tue, 26 Aug 2025 13:03:04 +0800
Subject: [PATCH] feat: page-order+;
---
common.scss | 2 +-
components/base/navbar.vue | 13 +-
pages.json | 14 +-
pages/index/index.vue | 7 +-
pages_order/auth/wxUserInfo.vue | 226 +++---
pages_order/coupon/couponCard.vue | 85 +++
pages_order/coupon/index.vue | 139 ++++
.../order/components/contactMentorPopup.vue | 114 +++
pages_order/order/components/orderInfoView.vue | 230 ++++++
.../{orderConfirm => components}/productCard.vue | 50 +-
pages_order/order/orderConfirm/index.vue | 495 +++++++------
pages_order/order/orderConfirm/infoPopup.vue | 1 -
pages_order/order/orderConfirm/memberCard.vue | 128 ++++
.../order/orderConfirm/memberChooseView.vue | 60 ++
pages_order/order/orderDetail/index.vue | 791 ++++++---------------
pages_order/order/orderList/index.vue | 29 +-
pages_order/order/orderList/orderCard.vue | 286 ++------
pages_order/order/orderPay/index.vue | 329 +++++++++
pages_order/order/styles/style.scss | 161 +++++
pages_order/order/styles/tag.scss | 23 +
pages_order/traveler/travelerCard.vue | 2 +-
pages_order/traveler/travelerPopup.vue | 14 +-
static/image/icon-change.png | Bin 0 -> 542 bytes
static/image/icon-phone.png | Bin 0 -> 1082 bytes
static/image/icon-plus.png | Bin 0 -> 651 bytes
.../traveler => static/image}/icon-require.png | Bin
store/store.js | 4 +
27 files changed, 2036 insertions(+), 1167 deletions(-)
create mode 100644 pages_order/coupon/couponCard.vue
create mode 100644 pages_order/coupon/index.vue
create mode 100644 pages_order/order/components/contactMentorPopup.vue
create mode 100644 pages_order/order/components/orderInfoView.vue
rename pages_order/order/{orderConfirm => components}/productCard.vue (80%)
create mode 100644 pages_order/order/orderConfirm/memberCard.vue
create mode 100644 pages_order/order/orderConfirm/memberChooseView.vue
create mode 100644 pages_order/order/orderPay/index.vue
create mode 100644 pages_order/order/styles/style.scss
create mode 100644 pages_order/order/styles/tag.scss
create mode 100644 static/image/icon-change.png
create mode 100644 static/image/icon-phone.png
create mode 100644 static/image/icon-plus.png
rename {pages_order/static/traveler => static/image}/icon-require.png (100%)
diff --git a/common.scss b/common.scss
index 0f52d15..1e22371 100644
--- a/common.scss
+++ b/common.scss
@@ -54,7 +54,7 @@
width: 100vw;
min-height: 100vh;
color: #181818;
- background: linear-gradient(#DAF3FF, #F4F4F4 200rpx, #F4F4F4);
+ background: linear-gradient(#DAF3FF, #F4F4F4 400rpx, #F4F4F4);
position: relative;
font-family: PingFang SC;
font-weight: 400;
diff --git a/components/base/navbar.vue b/components/base/navbar.vue
index 582b3f1..45beebe 100644
--- a/components/base/navbar.vue
+++ b/components/base/navbar.vue
@@ -15,7 +15,11 @@
@click="$emit('leftClick')"
:color="color" size="46rpx">
- {{ title }}
+
+
+ {{ title }}
+
+
-
-
-
-
-
- 鸿宇研学生
-
-
- 申请获取你的头像、昵称
-
-
-
-
-
-
-
- 头像
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
昵称
-
-
-
-
-
-
+
+
+
+
电话
@@ -73,16 +42,37 @@
-
-
-
-
+
+
+
+
+ 头像
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
\ No newline at end of file
diff --git a/pages_order/coupon/couponCard.vue b/pages_order/coupon/couponCard.vue
new file mode 100644
index 0000000..d46f091
--- /dev/null
+++ b/pages_order/coupon/couponCard.vue
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ ¥{{ data.price }}
+
+
+ {{ data.label }}
+ {{ `有效期至 ${data.validTime}` }}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages_order/coupon/index.vue b/pages_order/coupon/index.vue
new file mode 100644
index 0000000..66d2d63
--- /dev/null
+++ b/pages_order/coupon/index.vue
@@ -0,0 +1,139 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages_order/order/components/contactMentorPopup.vue b/pages_order/order/components/contactMentorPopup.vue
new file mode 100644
index 0000000..2af80a2
--- /dev/null
+++ b/pages_order/order/components/contactMentorPopup.vue
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages_order/order/components/orderInfoView.vue b/pages_order/order/components/orderInfoView.vue
new file mode 100644
index 0000000..2fc1c4e
--- /dev/null
+++ b/pages_order/order/components/orderInfoView.vue
@@ -0,0 +1,230 @@
+
+
+
+
+
+
+
+ {{ item.name }}
+ {{ getTypeDesc(item.type) }}
+ {{ getTypeTips(item.type) }}
+
+ {{ item.idNo }}
+
+ ¥{{ item.price }}
+
+
+ 总价格
+
+
+ ¥
+ {{ totalPrice }}
+
+ {{ `优惠(${data.discount})` }}
+
+
+
+
+
+
+
+
+ 真实姓名
+ {{ data.name }}
+
+
+ 手机号码
+ {{ data.phone }}
+
+
+
+
+
+ 订单编号
+ {{ data.orderNo }}
+
+
+ 下单时间
+ {{ data.createTime }}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages_order/order/orderConfirm/productCard.vue b/pages_order/order/components/productCard.vue
similarity index 80%
rename from pages_order/order/orderConfirm/productCard.vue
rename to pages_order/order/components/productCard.vue
index 305ada6..5bd9cd6 100644
--- a/pages_order/order/orderConfirm/productCard.vue
+++ b/pages_order/order/components/productCard.vue
@@ -28,33 +28,33 @@
\ No newline at end of file
diff --git a/pages_order/order/orderConfirm/infoPopup.vue b/pages_order/order/orderConfirm/infoPopup.vue
index 9ba2c00..780f76a 100644
--- a/pages_order/order/orderConfirm/infoPopup.vue
+++ b/pages_order/order/orderConfirm/infoPopup.vue
@@ -127,7 +127,6 @@
},
form: {
handler(val) {
- console.log('watch form', val)
this.$refs.form.setRules(this.getRules())
},
deep: true
diff --git a/pages_order/order/orderConfirm/memberCard.vue b/pages_order/order/orderConfirm/memberCard.vue
new file mode 100644
index 0000000..ae45cc6
--- /dev/null
+++ b/pages_order/order/orderConfirm/memberCard.vue
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+
+
+
+ {{ data.name }}
+ {{ typeDesc }}
+
+ {{ data.idNo }}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages_order/order/orderConfirm/memberChooseView.vue b/pages_order/order/orderConfirm/memberChooseView.vue
new file mode 100644
index 0000000..de0e617
--- /dev/null
+++ b/pages_order/order/orderConfirm/memberChooseView.vue
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages_order/order/orderDetail/index.vue b/pages_order/order/orderDetail/index.vue
index 0d921d0..d9ab425 100644
--- a/pages_order/order/orderDetail/index.vue
+++ b/pages_order/order/orderDetail/index.vue
@@ -1,320 +1,254 @@
-
-
+
-
+
-
-
- 订单详情
- {{ statusDesc }}
-
-
-
-
-
- {{ item.productName }}
-
- 产品类型:
-
- {{ getTypeDesc(item.type) || '--' }}
-
-
- 产品内容:
-
- {{ item.content || '--' }}
-
-
- 价格:
- ¥{{ item.price }}
-
-
-
-
-
- 总价格
- ¥{{ orderData.orderAmount }}
-
-
-
-
-
- 售后信息
-
-
-
-
-
-
-
-
- {{ item.text }}
-
-
-
-
-
-
-
-
- 订单信息
-
-
-
- 订单编号
- {{ orderData.orderNo }}
-
-
- 下单时间
- {{ $dayjs(orderData.orderDate).format('YYYY-MM-DD HH:mm') }}
-
-
-
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+ 我已阅读并同意
+
+ 《退订政策》
+
+ 《合同范本》
+
+ 《预订须知》
+
+ 《安全提示》
+
+
-
+
+
+
\ No newline at end of file
diff --git a/pages_order/order/styles/style.scss b/pages_order/order/styles/style.scss
new file mode 100644
index 0000000..5403631
--- /dev/null
+++ b/pages_order/order/styles/style.scss
@@ -0,0 +1,161 @@
+
+ .page__view {
+ width: 100vw;
+ min-height: 100vh;
+ position: relative;
+
+ /deep/ .nav-bar__view {
+ position: fixed;
+ top: 0;
+ left: 0;
+ }
+ }
+
+ .main {
+ padding: calc(var(--status-bar-height) + 144rpx) 32rpx 326rpx 32rpx;
+ }
+
+ .card {
+ margin-top: 24rpx;
+ padding: 32rpx;
+ font-family: PingFang SC;
+ font-weight: 400;
+ line-height: 1.4;
+ background: #FFFFFF;
+ border: 2rpx solid #FFFFFF;
+ border-radius: 32rpx;
+
+ &-header {
+ font-family: PingFang SC;
+ font-weight: 500;
+ font-size: 36rpx;
+ line-height: 1.4;
+ color: #252545;
+ }
+ }
+ .form {
+ &-item {
+ margin-top: 16rpx;
+ border-bottom: 2rpx solid #EEEEEE;
+
+ &-label {
+ font-family: PingFang SC;
+ font-weight: 400;
+ font-size: 26rpx;
+ line-height: 1.4;
+ color: #181818;
+
+ .icon {
+ margin-right: 8rpx;
+ width: 16rpx;
+ height: auto;
+ }
+ }
+
+ &-content {
+ .row {
+ justify-content: space-between;
+
+
+ .text {
+ padding: 2rpx 0;
+ font-family: PingFang SC;
+ font-weight: 400;
+ font-size: 32rpx;
+ line-height: 1.4;
+
+ &.placeholder {
+ color: #C6C6C6;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ .notice {
+ margin-top: 40rpx;
+ font-family: PingFang SC;
+ font-weight: 400;
+
+ &-header {
+ font-size: 28rpx;
+ line-height: 1.4;
+ color: #393939;
+ }
+
+ &-content {
+ margin-top: 24rpx;
+ font-size: 24rpx;
+ line-height: 1.4;
+ color: #BABABA;
+ }
+ }
+
+ .bottom {
+ position: fixed;
+ left: 0;
+ bottom: 0;
+
+ width: 100vw;
+ // height: 270rpx;
+ background: #FFFFFF;
+ box-sizing: border-box;
+
+ .agreement {
+ display: flex;
+ align-items: center;
+ padding: 16rpx 40rpx;
+ background: #E9F8FF;
+ box-sizing: border-box;
+
+ /deep/ .uv-checkbox-group {
+ flex: none;
+ }
+
+ .desc {
+ flex: 1;
+ font-family: PingFang SC;
+ font-size: 24rpx;
+ font-weight: 400;
+ line-height: 40rpx;
+ color: #8B8B8B;
+ }
+
+ .highlight {
+ color: $uni-color;
+ }
+ }
+
+ .bar {
+ padding: 24rpx 40rpx;
+ padding-bottom: calc(env(safe-area-inset-bottom) + 24rpx);
+ box-sizing: border-box;
+ column-gap: 32rpx;
+
+ .col {
+ flex: 1;
+ }
+
+ .btn {
+ width: 100%;
+ // padding: 14rpx 74rpx;
+ padding: 14rpx 0;
+ font-family: PingFang SC;
+ font-weight: 500;
+ font-size: 36rpx;
+ line-height: 1;
+ color: #252545;
+ border: 2rpx solid #252545;
+ border-radius: 41rpx;
+
+ &-primary {
+ color: #FFFFFF;
+ background: linear-gradient(to right, #21FEEC, #019AF9);
+ border-color: #00A9FF;
+ }
+ }
+
+ }
+
+ }
diff --git a/pages_order/order/styles/tag.scss b/pages_order/order/styles/tag.scss
new file mode 100644
index 0000000..487491c
--- /dev/null
+++ b/pages_order/order/styles/tag.scss
@@ -0,0 +1,23 @@
+
+ .tag {
+ padding: 6rpx 24rpx;
+ font-size: 24rpx;
+ color: #252545;
+ background: #F3F3F3;
+ border-radius: 12rpx;
+
+ &-0 {
+ color: #FF860E;
+ background: #FFF4E9;
+ }
+
+ &-1 {
+ color: #2799E0;
+ background: #EEF7FD;
+ }
+
+ &-4 {
+ color: #E53C29;
+ background: #FDE7E5;
+ }
+ }
\ No newline at end of file
diff --git a/pages_order/traveler/travelerCard.vue b/pages_order/traveler/travelerCard.vue
index 634ca49..73d4bdf 100644
--- a/pages_order/traveler/travelerCard.vue
+++ b/pages_order/traveler/travelerCard.vue
@@ -37,7 +37,7 @@
>
- 默认地址
+ 默认出行人
diff --git a/pages_order/traveler/travelerPopup.vue b/pages_order/traveler/travelerPopup.vue
index 33de02d..841a506 100644
--- a/pages_order/traveler/travelerPopup.vue
+++ b/pages_order/traveler/travelerPopup.vue
@@ -16,7 +16,7 @@
-
+
姓名
@@ -27,7 +27,7 @@
-
+
身份证号
@@ -38,7 +38,7 @@
-
+
类型
@@ -63,7 +63,7 @@
-
+
性别
@@ -88,7 +88,7 @@
-
+
手机号
@@ -139,7 +139,7 @@
-
+
紧急联系人
@@ -150,7 +150,7 @@
-
+
监护人联系方式
diff --git a/static/image/icon-change.png b/static/image/icon-change.png
new file mode 100644
index 0000000000000000000000000000000000000000..dc1ea8043fbbee1d3b2180a12b9f76dd62069d2b
GIT binary patch
literal 542
zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGooCO|{#S9FJK(?X*8o|0J>kjW-kpF?o0gKFI}%?`%USJ>7HB11r~1mV6SvVL~s9JfkeH-536~Vt_U3CPgFXi
znyV$4*TcalaF9{S!hwao;{k)9j6xH0v0Fxn!ju1V*FW|WuM^`d)SbQT=d_8I2R8hS
zPkMa*YhkJ3p@W~6sNbyZIJNe9<_$?|WGTw9PQ&a9*Bud!2ezrbw!v}rpRgw5b7cD!ul?^eL(
zv;2jC-b`*U@haiNk?zNDE?D;@Ib-7ibI-hfOfR|=EKqRL_Bkz)sO@uJAW{EHVJZvL
zl@iyMtpV5N1ua^h3w`Qep4aBrK=DP2mI>1^MCIzg;1ovALJofAktf$bAWK7msvRpc^Nlp7!?h|6@!t_aRZ
z3b_ClphVB`o59ctAB!K0*DeI~^z`(+a0XCP6vdD)R8FZpQCTh)3xgLxuxKmxipn*W
z;npofWlX|X=r}>5NpMD&?^H73vCky@4v8R}IbHIAS5{>Ii}ZlEXfl3=Qt;5@@g%~@
z=9Dfogd^HNfuHdZ!OZPsGPy)N*U&MQZaPKVF8v69!5h}=^_^|3V<6Vm$J5+u8Ny-1
zk9OkIa)TClE#0IF7buq{Eg8yQGJ*mgmsABqfA05~OXwW2L7d3Q;LjR^8j{WEzLOi-
zYt(ike4NFm8k18yH$)LJo9`fv=?kP|Grkc)D#45-`V?t7ql(X}+0L>nBDwgfYh=-+6ErRxEO;Ah9bcaTJjFDkil#oRWk
znhEdM-P@nc?jazFP8k<-15P}add@i8~O)vv-mw#COAB_>-nX%eUmaN!MH@Tu`B2pyD}KZ!WCL-E4}KfV8)p)
zis<6!T}=}DBoXeR;}#voNAvOYEaL!D-S(#Bc5AHE`FJ5J24V4G_&H@p5
zd72?lJ(I`YKsUCToI4AB=gId4n~mk+k)dpCzFyFGGAh5gPEg=2nju5H?tX;c+up)$
z&zd*b;-Pk7g&PDCB$^ETB|}`{Pte1{nIDp;=svIWx$vFMQE_PRVN~bScKward>E8r
zpsD$Ofzr#q1VwT&hw?nuQlyD@COFUI;5rN%8gZZ4Un1~qo*^ECaxcI^3VT@Fm^@tA
z<4frwwP+^7E3GmZ42t=D{?K?Iktoit4@F~?7cH9UsPM*pzwh2##J1=N?PO53umfsW
zfFz!-upX~=P+j3IIc3KgNjzP#<#B@!lT3hjx%(%zWQ#CWV9dS+iVg|e-9dfzh2?*4$oVIX9ClFr^PY#^ciiIy)shDTER
z`JkdJS`_aT%p65@MPl&=ZAV!tv3an9$_Io`c``W
z$lZxy-8q?;Kn_c~qpu?a!^VE@KZ&di3``21E{-7;jBoGS<_SB>w0$hknRd(kfH^}R
zgL#9pOH&iqwj~`YnygQqTp5Gq%^O1E+C
zIaDZl@GM83TY+)YY{5G{57Jo7m3I&)bo1QdIhE7&`={?zn>Q=6Vps1ko6;KTWa*{$
zMmI|Wl2-!#A~?y6+XAb)j7VXuJFUmV|#)mT9h9b_DgH?{WH9)
zaOrNP{@vVa+Z^Y6(ILAQz7Ctc>eHtHwc?kNyBbR-t1l`2acm2p|MjYFYCL$X>xD>Hxm4b78+Ms&Oc7w#lDJjUiwcH+pV`hx4tdc;rGi+s;ND?
zQ1SiNK-E=$csusIRegWt#BAnIHD$j085zN`xaym{*uvJRM=?jIfcT!SelF{r5}E+q
Cup%%3
literal 0
HcmV?d00001
diff --git a/pages_order/static/traveler/icon-require.png b/static/image/icon-require.png
similarity index 100%
rename from pages_order/static/traveler/icon-require.png
rename to static/image/icon-require.png
diff --git a/store/store.js b/store/store.js
index 8d89fd2..f03720a 100644
--- a/store/store.js
+++ b/store/store.js
@@ -14,6 +14,7 @@ const store = new Vuex.Store({
userInfo : {}, //用户信息
travelerList: null,
orderInfo: null,
+ couponInfo: null,
},
getters: {
// 角色 true为水洗店 false为酒店 : 身份判断如果不需要,可以删除
@@ -112,6 +113,9 @@ const store = new Vuex.Store({
setOrderInfo(state, data) {
state.orderInfo = data
},
+ setCouponInfo(state, data) {
+ state.couponInfo = data
+ },
},
actions: {
async collect(state, id) {