Merge branch 'main' of http://120.76.84.145:10101/gitblit/r/H5/qingduTicketing
| | |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/goodOrder/goodOrder", |
| | | "style": { |
| | | "navigationBarTitleText": "订单列表" |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/goodOrder/orderDetail", |
| | | "style": { |
| | | "navigationStyle": "custom" |
| | | } |
| | | }, |
| | | { |
| | | "path" : "pages/agreement/agreement", |
| | | "style" : |
| | | { |
| New file |
| | |
| | | <template> |
| | | <view class="record-page"> |
| | | <view class="tab-card flex j-between"> |
| | | <view class="tab-item relative " v-for="(item,index) in tabList" :key="index" @tap="changeTab(item)" |
| | | :class="activeTab==item.value && 'activeItem'"> |
| | | {{item.label}} |
| | | <image v-if="activeTab==item.value" src="/static/image/mine/Line@2x.png" class="tab-active" |
| | | mode="aspectFill"></image> |
| | | </view> |
| | | </view> |
| | | <view class="record-List mt-38"> |
| | | <view class="record-Item mb-27" @click="goDetail(item)" v-for="(item,index) in list" :key="index"> |
| | | <view class="flex a-center j-between border1 ml-27 mr-27"> |
| | | <view class="record-time mb-27"> |
| | | <view class="flex a-center lh-23">订单号:{{item.orderNumber}} |
| | | </view> |
| | | <view class="flex a-center lh-23 mt-14">下单时间:{{item.createTime}} |
| | | </view> |
| | | </view> |
| | | <view class="status"> 待支付 </view> |
| | | </view> |
| | | |
| | | <view class="good-info pt-29 pl-27 pr-27 pb-29"> |
| | | <view class="good-card flex"> |
| | | <image src="@/static/image/mine/contact.png" class="w-202 h-202 shrink0" mode="aspectFill"> |
| | | </image> |
| | | |
| | | <view class="goods-info ml-19"> |
| | | <view class="title line2"> |
| | | 青城山金属冰箱贴纪念品伴手礼送朋友 |
| | | </view> |
| | | <view class="teacher flex a-center mt-6 line2"> |
| | | 青城山都江堰金属冰箱贴旅游景点城市景区文创纪念品伴手礼送朋友 |
| | | </view> |
| | | |
| | | <view class="price flex a-center mt-6"> |
| | | <view class="unit fs-27">¥</view> |
| | | 333 |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="pay-info flex a-center j-between mt-27" v-if="item.payStatus==1"> |
| | | <view class="time flex a-center"> |
| | | 支付倒计时: <u-count-down height="38.46" :timestamp="30*1000" separator-color="#06C584" |
| | | font-size="23" color="#ffffff" bg-color="#06C584" autoStart millisecond |
| | | @change="onChange($event,item)" @finish="reGetList"> |
| | | </u-count-down> |
| | | </view> |
| | | <view class="pay-btn" @click="goPay(item)"> |
| | | 立即支付 |
| | | </view> |
| | | </view> |
| | | |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { ref, reactive } from "vue"; |
| | | import { onLoad, onShow, onReachBottom } from "@dcloudio/uni-app" |
| | | |
| | | const tabList = ref([{ |
| | | label: '全部', |
| | | value: 1 |
| | | }, { |
| | | label: '待支付', |
| | | value: 2 |
| | | }, { |
| | | label: '待收货', |
| | | value: 3 |
| | | }, { |
| | | label: '已完成', |
| | | value: 4 |
| | | }]) |
| | | |
| | | const activeTab = ref(1) |
| | | const list = ref([{ |
| | | orderNumber: '111', |
| | | createTime: '22222', |
| | | payStatus: 1 |
| | | |
| | | }]) |
| | | |
| | | const changeTab = (item) => { |
| | | activeTab.value = item.value |
| | | } |
| | | |
| | | const onChange = () => { |
| | | |
| | | } |
| | | |
| | | const goDetail = (item) => { |
| | | uni.navigateTo({ |
| | | url: '/pages/goodOrder/orderDetail?id=' + item.id |
| | | }) |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .record-page { |
| | | padding: 38.46rpx 34.62rpx; |
| | | |
| | | .tab-item { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 500; |
| | | font-size: 31rpx; |
| | | color: #4F4F4F; |
| | | width: 110rpx; |
| | | text-align: center; |
| | | |
| | | .tab-active { |
| | | position: absolute; |
| | | width: 86rpx; |
| | | height: 42rpx; |
| | | bottom: -28rpx; |
| | | left: 0rpx; |
| | | right: 0; |
| | | margin: 0 auto; |
| | | } |
| | | } |
| | | |
| | | .activeItem { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 38rpx; |
| | | color: #303133; |
| | | |
| | | .tab-active { |
| | | position: absolute; |
| | | width: 86rpx; |
| | | height: 42rpx; |
| | | bottom: -28rpx; |
| | | left: 0; |
| | | right: 0; |
| | | margin: 0 auto; |
| | | } |
| | | } |
| | | |
| | | .record-Item { |
| | | width: 681rpx; |
| | | min-height: 230.77rpx; |
| | | border-radius: 19rpx; |
| | | border: 2rpx solid rgba(6, 197, 132, 0.2); |
| | | background: #fff; |
| | | |
| | | .record-time { |
| | | margin-top: 28.85rpx; |
| | | font-weight: 500; |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 500; |
| | | font-size: 23rpx; |
| | | color: #8C8C8C; |
| | | } |
| | | |
| | | .status { |
| | | width: 104rpx; |
| | | height: 46rpx; |
| | | background: #D9FFF2; |
| | | border-radius: 12rpx; |
| | | border-radius: 12rpx; |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 25rpx; |
| | | color: #06C584; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | margin-left: 30.77rpx; |
| | | } |
| | | |
| | | |
| | | .title { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 31rpx; |
| | | color: #303133; |
| | | } |
| | | |
| | | .teacher { |
| | | font-family: PingFang-SC, PingFang-SC; |
| | | font-weight: 500; |
| | | font-size: 23rpx; |
| | | color: #8E92AA; |
| | | } |
| | | |
| | | .price { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 38.46rpx; |
| | | color: #FF6257; |
| | | } |
| | | |
| | | |
| | | .pay-info { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 500; |
| | | font-size: 23rpx; |
| | | color: #06C584; |
| | | line-height: 33rpx; |
| | | width: 607rpx; |
| | | height: 58rpx; |
| | | background: linear-gradient(270deg, rgba(6, 197, 132, 0) 0%, rgba(6, 197, 132, 0.1) 100%); |
| | | border-radius: 29rpx; |
| | | padding-left: 19.23rpx; |
| | | |
| | | .time__item { |
| | | width: 38rpx; |
| | | height: 31rpx; |
| | | background: #FF9023; |
| | | border-radius: 4rpx; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 23rpx; |
| | | color: #FFFFFF; |
| | | |
| | | } |
| | | |
| | | .pay-btn { |
| | | width: 192rpx; |
| | | height: 58rpx; |
| | | background: #06C584; |
| | | border-radius: 67rpx; |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 500; |
| | | font-size: 27rpx; |
| | | color: #FFFFFF; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .border1 { |
| | | border-bottom: 2rpx dashed #DADADA; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view class=""> |
| | | <u-navbar title="订单详情" :border-bottom="false" background="transparent" :is-fixed="false" title-bold></u-navbar> |
| | | |
| | | <view class="status"> |
| | | 待支付 |
| | | </view> |
| | | |
| | | <view class=" flex a-center ml-27 mt-23"> |
| | | <u-count-down height="38.46" :timestamp="30*1000" separator-color="#06C584" font-size="23" color="#ffffff" |
| | | bg-color="#06C584" autoStart millisecond> |
| | | </u-count-down> |
| | | <view class="tip">后自动取消订单</view> |
| | | </view> |
| | | |
| | | <view class="good-card flex"> |
| | | <image src="@/static/image/mine/contact.png" class="w-202 h-202 shrink0" mode="aspectFill"> |
| | | </image> |
| | | |
| | | <view class="goods-info ml-19"> |
| | | <view class="title line2"> |
| | | 青城山金属冰箱贴纪念品伴手礼送朋友 |
| | | </view> |
| | | <view class="teacher flex a-center mt-9 line2"> |
| | | 青城山都江堰金属冰箱贴旅游景点城市景区文创纪念品伴手礼送朋友 |
| | | </view> |
| | | |
| | | <view class="price flex a-center mt-9"> |
| | | <view class="unit fs-27">¥</view> |
| | | 333 |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="order-cell flex a-center pl-27 pr-27 j-between"> |
| | | <view class="label">订单编号</view> |
| | | <view class="value">64564564564356456</view> |
| | | </view> |
| | | <view class="order-cell flex a-center pl-27 pr-27 j-between mt-31"> |
| | | <view class="label">下单时间</view> |
| | | <view class="value">2025-09-09 11:12:05</view> |
| | | </view> |
| | | <view class="order-cell flex a-center pl-27 pr-27 j-between mt-31"> |
| | | <view class="label">订单金额</view> |
| | | <view class="value">¥88.00</view> |
| | | </view> |
| | | <view class="order-cell flex a-center pl-27 pr-27 j-between mt-31"> |
| | | <view class="label">支付金额</view> |
| | | <view class="value">¥88.00</view> |
| | | </view> |
| | | <view class="order-cell flex a-center pl-27 pr-27 j-between mt-31"> |
| | | <view class="label">支付方式</view> |
| | | <view class="value">微信支付</view> |
| | | </view> |
| | | <view class="order-cell flex a-center pl-27 pr-27 j-between mt-31 mb-27"> |
| | | <view class="label">收货方式</view> |
| | | <view class="value">到店自提</view> |
| | | </view> |
| | | |
| | | |
| | | <view class="logistics-info"> |
| | | <view class="logistics-title flex j-between mb-17"> |
| | | 物流信息 <view class="right">待平台发货</view> |
| | | </view> |
| | | |
| | | <view class="contact-info"> |
| | | <view class="phone-name flex"> |
| | | <view class="name"> |
| | | 潘舒 |
| | | </view> |
| | | |
| | | <view class="phone ml-54"> |
| | | 17943932672 |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="address mt-27"> |
| | | 河北省秦皇岛市青龙满族自治县珠江大道965号 |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="order-cell flex a-center pl-27 pr-27 j-between mt-25 mb-27"> |
| | | <view class="label">物流公司</view> |
| | | <view class="value">中通快递</view> |
| | | </view> |
| | | |
| | | <view class="order-cell flex a-center pl-27 pr-27 j-between mt-25"> |
| | | <view class="label">快递单号</view> |
| | | <view class="value">2543658679783346111</view> |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | |
| | | |
| | | <view class="btns pl-27 pr-27 flex"> |
| | | <view class="refound"> |
| | | 退款申请 |
| | | </view> |
| | | <view class="pay-btn flex1">立即支付</view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { |
| | | ref |
| | | } from 'vue' |
| | | </script> |
| | | |
| | | |
| | | <style> |
| | | page { |
| | | background: linear-gradient(180deg, rgba(6, 197, 132, 0.4) 0%, rgba(6, 197, 132, 0) 317rpx); |
| | | } |
| | | </style> |
| | | |
| | | <style scoped lang="scss"> |
| | | .status { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 46rpx; |
| | | color: #303133; |
| | | margin-top: 23.08rpx; |
| | | margin-left: 26.92rpx; |
| | | } |
| | | |
| | | .tip { |
| | | font-family: PingFang-SC, PingFang-SC; |
| | | font-weight: 500; |
| | | font-size: 27rpx; |
| | | color: #303133; |
| | | margin-left: 19.23rpx; |
| | | } |
| | | |
| | | .good-card { |
| | | background: #FFFFFF; |
| | | border: 2rpx solid rgba(6, 197, 132, 0.2); |
| | | margin-left: 26.92rpx; |
| | | margin-right: 26.92rpx; |
| | | margin-top: 40.38rpx; |
| | | margin-bottom: 38.46rpx; |
| | | border-radius: 19rpx; |
| | | padding: 30.77rpx; |
| | | |
| | | .title { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 31rpx; |
| | | color: #303133; |
| | | } |
| | | |
| | | .teacher { |
| | | font-family: PingFang-SC, PingFang-SC; |
| | | font-weight: 500; |
| | | font-size: 23rpx; |
| | | color: #8E92AA; |
| | | } |
| | | |
| | | .price { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 38.46rpx; |
| | | color: #FF6257; |
| | | } |
| | | } |
| | | |
| | | .label { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 500; |
| | | font-size: 27rpx; |
| | | color: rgba(0, 0, 0, 0.45); |
| | | } |
| | | |
| | | .value { |
| | | font-family: Plumb, Plumb; |
| | | font-weight: bold; |
| | | font-size: 27rpx; |
| | | color: #303133; |
| | | } |
| | | |
| | | .logistics-info { |
| | | background-color: rgba(0, 0, 0, 0.04); |
| | | padding: 19.23rpx 26.92rpx 31.15rpx 19.23rpx; |
| | | } |
| | | |
| | | |
| | | .logistics-title { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 500; |
| | | font-size: 27rpx; |
| | | color: rgba(0, 0, 0, 0.45); |
| | | } |
| | | |
| | | .right { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 500; |
| | | font-size: 27rpx; |
| | | color: #06C584; |
| | | } |
| | | |
| | | .contact-info { |
| | | // width: 712rpx; |
| | | margin: 0 auto; |
| | | background-color: #fff; |
| | | padding: 26.92rpx; |
| | | |
| | | .name { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 31rpx; |
| | | color: #303133; |
| | | } |
| | | |
| | | .phone { |
| | | font-family: Plumb, Plumb; |
| | | font-weight: bold; |
| | | font-size: 31rpx; |
| | | color: #303133; |
| | | } |
| | | |
| | | .address { |
| | | font-family: PingFang-SC, PingFang-SC; |
| | | font-weight: 500; |
| | | font-size: 27rpx; |
| | | color: rgba(0, 0, 0, 0.65); |
| | | } |
| | | } |
| | | |
| | | |
| | | .btns { |
| | | position: fixed; |
| | | bottom: 42.69rpx; |
| | | width: 100%; |
| | | } |
| | | |
| | | .pay-btn { |
| | | // width: 596rpx; |
| | | height: 96rpx; |
| | | background: linear-gradient(270deg, #08C866 0%, #06C584 100%); |
| | | box-shadow: 0rpx 4rpx 25rpx 0rpx rgba(6, 197, 132, 0.15), 0rpx 8rpx 19rpx 0rpx rgba(6, 197, 132, 0.19); |
| | | border-radius: 67rpx; |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 35rpx; |
| | | color: #FFFFFF; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | } |
| | | |
| | | .refound { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 500; |
| | | font-size: 31rpx; |
| | | color: #06C584; |
| | | width: 250rpx; |
| | | height: 96rpx; |
| | | border-radius: 58rpx; |
| | | border: 2rpx solid #06C584; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | margin-right: 27rpx; |
| | | } |
| | | </style> |
| | |
| | | </view> |
| | | </view> |
| | | <view v-else class="mt-88 mx-77"> |
| | | <input v-model="form.username" placeholder="请输入手机号码" maxlength="11" placeholder-class="placeholder-class" |
| | | class="bgcolor2 fs-29 br-54 py-33 px-38 boeder2" /> |
| | | <view class="flex a-center bgcolor2 br-54 py-33 px-38 mt-38 boeder2"> |
| | | <input v-model="form.code" placeholder="请输入验证码" placeholder-class="placeholder-class" |
| | | class="flex1 fs-29" /> |
| | | <view v-if="!time" @tap.stop="getCodeFun" class="color2 fs-27">获取验证码</view> |
| | | <view v-else class="color3 fs-27">{{ time }}秒后重新获取</view> |
| | | <view class="phone"> |
| | | <view class="flex a-center"> |
| | | <image src="/static/image/login/phone.png" class="w-25 h-38 mr-17" mode="aspectFill"></image> |
| | | 手机号 |
| | | </view> |
| | | <input v-model="form.username" placeholder="请输入手机号码" maxlength="11" |
| | | placeholder-class="placeholder-class" class="h-110 fs-31 br-54" /> |
| | | </view> |
| | | <view class="mt-58 lh-96 txt-center br-67 white fs-35 font-bold bgcolor1" @tap.stop="toLogin"> |
| | | <view class="flex bgcolor2 pt-58 boeder2 flex-column"> |
| | | <view class="flex a-center"> |
| | | <image src="/static/image/login/password.png" class="w-33 h-38 mr-17" mode="aspectFill"></image> |
| | | 手机号 |
| | | </view> |
| | | |
| | | <view class="flex a-center"> |
| | | <input v-model="form.code" placeholder="请输入验证码" placeholder-class="placeholder-class" |
| | | class="flex1 fs-31 h-110" /> |
| | | <view v-if="!time" @tap.stop="getCodeFun" class="color2 getCode fs-27">获取验证码</view> |
| | | <view v-else class="color3 fs-27 getCode">{{ time }}秒后重新获取</view> |
| | | </view> |
| | | |
| | | </view> |
| | | <view class="mt-115 lh-96 txt-center br-67 white fs-35 font-bold bgcolor1" @tap.stop="toLogin"> |
| | | 登录 |
| | | </view> |
| | | </view> |
| | |
| | | |
| | | const isChecked = ref<boolean>(false); |
| | | const jsCode = ref<string>(""); |
| | | const loginType = ref<boolean>(true); |
| | | const loginType = ref<boolean>(false); |
| | | const msgFlag = ref<boolean>(false); |
| | | const time = ref<number>(0); |
| | | const timer = ref<any>(null); |
| | |
| | | </script> |
| | | <style> |
| | | page { |
| | | background-image: url("https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/b36f0148-0e33-461a-a8a4-30ede3c49b30.png"); |
| | | background-size: cover; |
| | | background-color: #fff !important; |
| | | } |
| | | </style> |
| | | <style lang="scss" scoped> |
| | |
| | | } |
| | | |
| | | .boeder2 { |
| | | border: 4rpx solid rgba(27, 168, 236, 0.05); |
| | | border: 2rpx solid rgba(0, 0, 0, 0.06); |
| | | border-left: unset; |
| | | border-right: unset; |
| | | |
| | | } |
| | | |
| | | .color2 { |
| | |
| | | ::v-deep .placeholder-class { |
| | | color: rgba(0, 0, 0, 0.4); |
| | | } |
| | | |
| | | .getCode { |
| | | min-width: 192rpx; |
| | | height: 58rpx; |
| | | background: #06C584; |
| | | border-radius: 67rpx; |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 500; |
| | | font-size: 27rpx; |
| | | color: #FFFFFF; |
| | | padding: 0 28.85rpx; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | } |
| | | </style> |
| | |
| | | |
| | | |
| | | <view class="orderList"> |
| | | <view class="title flex j-between">景区门票 <view class="more">查看全部</view> |
| | | <view class="title flex j-between">景区门票 <view class="more" @tap="goOrder">查看全部</view> |
| | | </view> |
| | | <view class="flex j-between mt-38"> |
| | | <view class="nopay flex flex-column j-center a-center"> |
| | | <view class="nopay flex flex-column j-center a-center" @tap.stop="goOrderOne(2)"> |
| | | <image src="/static/image/mine/notpay.png" class="w-50 h-47" mode="aspectFill"></image> |
| | | <view class="mt-13 label">待支付</view> |
| | | </view> |
| | | |
| | | <view class="nopay flex flex-column j-center a-center"> |
| | | <view class="nopay flex flex-column j-center a-center" @tap.stop="goOrderOne(3)"> |
| | | <image src="/static/image/mine/waitUse.png" class="w-46 h-46" mode="aspectFill"></image> |
| | | <view class="mt-13 label"> |
| | | 待支付 |
| | | 待使用 |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="nopay flex flex-column j-center a-center"> |
| | | <view class="nopay flex flex-column j-center a-center" @tap.stop="goOrderOne(4)"> |
| | | <image src="/static/image/mine/userd.png" class="w-53 h-46" mode="aspectFill"></image> |
| | | <view class="mt-13 label"> |
| | | 已使用 |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="nopay flex flex-column j-center a-center"> |
| | | <view class="nopay flex flex-column j-center a-center" @tap.stop="goOrderOne(5)"> |
| | | <image src="/static/image/mine/returnM.png" class="w-53 h-46" mode="aspectFill"></image> |
| | | <view class="mt-13 label"> |
| | | 售后退款 |
| | |
| | | <view class="title flex j-between ml-27">常用服务</view> |
| | | |
| | | <view class="opt-card mt-8"> |
| | | <view class="opt-cell flex j-between pl-27 pr-27 a-center pt-30 pb-30"> |
| | | <view class="opt-cell flex j-between pl-27 pr-27 a-center pt-30 pb-30" @click="goGoodOrder"> |
| | | <view class="opt-left flex"> |
| | | <image src="/static/image/mine/list.png" class="w-35 h-38 mr-27" mode="aspectFill"></image> |
| | | <view class="title"> |
| | |
| | | </view> |
| | | <image src="/static/image/mine/gary.png" class="w-23 h-23" mode="aspectFill"></image> |
| | | </view> |
| | | <view class="opt-cell flex j-between pl-27 pr-27 a-center pt-30 pb-30"> |
| | | <view class="opt-cell flex j-between pl-27 pr-27 a-center pt-30 pb-30" @tap="goTour"> |
| | | <view class="opt-left flex"> |
| | | <image src="/static/image/mine/account.png" class="w-42 h-38 mr-27" mode="aspectFill"> |
| | | </image> |
| | |
| | | </view> |
| | | <image src="/static/image/mine/gary.png" class="w-23 h-23" mode="aspectFill"></image> |
| | | </view> |
| | | <view class="opt-cell flex j-between pl-27 pr-27 a-center pt-30 pb-30"> |
| | | <view class="opt-cell flex j-between pl-27 pr-27 a-center pt-30 pb-30" @tap="goContact"> |
| | | <view class="opt-left flex"> |
| | | <image src="/static/image/mine/tip.png" class="w-35 h-38 mr-27" mode="aspectFill"></image> |
| | | <view class="title"> |
| | |
| | | </view> |
| | | <image src="/static/image/mine/gary.png" class="w-23 h-23" mode="aspectFill"></image> |
| | | </view> |
| | | <view class="opt-cell flex j-between pl-27 pr-27 a-center pt-30 pb-30"> |
| | | <!-- <view class="opt-cell flex j-between pl-27 pr-27 a-center pt-30 pb-30"> |
| | | <view class="opt-left flex"> |
| | | <image src="/static/image/mine/location.png" class="w-35 h-38 mr-27" mode="aspectFill"> |
| | | </image> |
| | |
| | | </view> |
| | | </view> |
| | | <image src="/static/image/mine/gary.png" class="w-23 h-23" mode="aspectFill"></image> |
| | | </view> |
| | | </view> --> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | }) |
| | | } |
| | | |
| | | const toDetail = () => { |
| | | const goOrder = () => { |
| | | uni.navigateTo({ |
| | | url: '/pagesA/personalInformation/personalInformation' |
| | | }) |
| | | } |
| | | |
| | | const toGold = () => { |
| | | uni.navigateTo({ |
| | | url: '/pagesA/gold/gold' |
| | | }) |
| | | } |
| | | const toOrder = () => { |
| | | uni.switchTab({ |
| | | url: '/pages/order/order' |
| | | }) |
| | | } |
| | | |
| | | const toAgreement = () => { |
| | | const goOrderOne = (type) => { |
| | | uni.navigateTo({ |
| | | url: "/pagesA/agreement/agreement?title=用户注册隐私协议&type=1", |
| | | }); |
| | | }; |
| | | url: '/pages/order/order?type=' + type |
| | | }) |
| | | } |
| | | |
| | | const toPromotion = () => { |
| | | const goTour = () => { |
| | | uni.navigateTo({ |
| | | url: '/pagesA/promotion/promotion' |
| | | url: '/pages/tourist/tourist' |
| | | }) |
| | | } |
| | | |
| | | const goContact = () => { |
| | | uni.navigateTo({ |
| | | url: '/pages/contact/contact' |
| | | }) |
| | | } |
| | | |
| | | const goGoodOrder = () => { |
| | | uni.navigateTo({ |
| | | url: '/pages/goodOrder/goodOrder' |
| | | }) |
| | | } |
| | | </script> |
| | |
| | | |
| | | <script setup lang="ts"> |
| | | import { ref, reactive } from "vue"; |
| | | import { onLoad, onShow, onReachBottom } from "@dcloudio/uni-app" |
| | | |
| | | const tabList = ref([{ |
| | | label: '全部', |
| | |
| | | const changeTab = (item) => { |
| | | activeTab.value = item.value |
| | | } |
| | | |
| | | onLoad((query) => { |
| | | console.log('//////////////', query); |
| | | if (query.type) { |
| | | activeTab.value = query.type |
| | | } |
| | | }) |
| | | </script> |
| | | |
| | | <style scoped> |
| | |
| | | <view class="label">票号</view> |
| | | <view class="value"> |
| | | <view :class="{ 'text-ellipsis': true }">46456245634567457356</view> |
| | | <view class="btn">复制</view> |
| | | <view class="btn" @click="copyCode('46456245634567457356')">复制</view> |
| | | </view> |
| | | </view> |
| | | <view class="item px-46"> |
| | | <view class="label">2025-12-31 12:00后到期</view> |
| | | <view class="btn">申请退款</view> |
| | | <view class="item px-46" v-if="true"> |
| | | <view class="label" style="font-weight: bold;">2025-12-31 12:00后到期</view> |
| | | <view class="btn" @click="toRefund">申请退款</view> |
| | | </view> |
| | | <view class="item px-46" v-else-if="false"> |
| | | <view class="label">消费时间</view> |
| | | <view class="value">2025-09-09 11:09:09</view> |
| | | </view> |
| | | <view class="item px-46" v-else> |
| | | <view class="label">退款时间</view> |
| | | <view class="value">2025-09-09 11:09:09</view> |
| | | </view> |
| | | </view> |
| | | <!-- 订单信息 --> |
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { ref } from 'vue' |
| | | |
| | | const orderId = ref('') |
| | | |
| | | const copyCode = (code) => { |
| | | uni.setClipboardData({ |
| | | data: code, |
| | | success: () => { |
| | | uni.showToast({ |
| | | title: "复制成功", |
| | | icon: "success", |
| | | }); |
| | | }, |
| | | }); |
| | | }; |
| | | |
| | | const toRefund = () => { |
| | | uni.navigateTo({ |
| | | url: "/pages/orderDetail/refund?orderId=" + orderId.value, |
| | | }); |
| | | }; |
| | | |
| | | const toAgreement = () => { |
| | | uni.navigateTo({ |
| | | url: "/pagesA/agreement/agreement?title=用户注册隐私协议&type=1", |
| | | }); |
| | | }; |
| | | |
| | | </script> |
| | | |
| | | <style> |
| | |
| | | width: 365rpx; |
| | | height: 365rpx; |
| | | position: relative; |
| | | |
| | | image { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | |
| | | .ellipsis { |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | width: 100%; |
| | | height: 100%; |
| | | background: rgba(255,255,255,0.7); |
| | | background: rgba(255, 255, 255, 0.7); |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | |
| | | image { |
| | | width: 285rpx; |
| | | height: 231rpx; |
| | |
| | | <template> |
| | | <view class="container"> |
| | | <u-navbar title="申请退款" :border-bottom="false" background="transparent" :is-fixed="false" title-bold></u-navbar> |
| | | <view class="pt-27 px-27"> |
| | | <u-navbar title="申请退款" :border-bottom="false" background="transparent" title-bold></u-navbar> |
| | | <view class="pt-27 px-27 content"> |
| | | <view class="list-item"> |
| | | <view class="item-top flex j-between a-center"> |
| | | <view class="name">青城后山成人票</view> |
| | | <view class="status">待使用</view> |
| | | </view> |
| | | |
| | | <view class="good-info flex mt-31"> |
| | | <image src="/static/image/mine/contact.png" class="w-154 h-154 br-19" mode="aspectFill"></image> |
| | | |
| | | <view class="info ml-27"> |
| | | <view class="use-time mt-5 flex a-center">下单时间 |
| | | <view class="value">2025-09-09</view> |
| | | </view> |
| | | <view class="use-time flex mt-9 a-center">使用日期 |
| | | <view class="value">2025-09-09 周五</view> |
| | | </view> |
| | | <view class="use-time flex mt-9 a-center">使用时段 |
| | | <view class="value">16:00</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="price-Btn flex j-between a-center pl-27 pr-27 mt-19"> |
| | | <view class="price flex a-center"> |
| | | <view class="unit fs-27">¥</view> |
| | | 20.00 |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="refund"> |
| | | <view class="title">退款原因</view> |
| | | <u-input v-model="value" type="textarea" :clearable="false" |
| | | placeholder-style="font-size: 23rpx; color: rgba(0, 0, 0, 0.45);" /> |
| | | </view> |
| | | </view> |
| | | <view class="submit-btn flex j-center a-center" @click="submit">提交申请</view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { ref } from 'vue' |
| | | // import { refund } from '@/api/order' |
| | | |
| | | const value = ref('') |
| | | |
| | | |
| | | |
| | | const submit = async () => { |
| | | if (!value.value) { |
| | | uni.showToast({ |
| | | title: '请输入退款原因', |
| | | icon: 'none' |
| | | }) |
| | | return |
| | | } |
| | | // await refund({ |
| | | // orderId: orderId.value, |
| | | // reason: value.value |
| | | // }) |
| | | uni.showToast({ |
| | | title: '申请退款成功', |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | |
| | | <style lang="scss"> |
| | | .container { |
| | | width: 100%; |
| | | // height: 100%; |
| | | height: 100%; |
| | | min-height: 100vh; |
| | | display: flex; |
| | | flex-direction: column; |
| | | box-sizing: border-box; |
| | | background: linear-gradient(180deg, rgba(6, 197, 132, 0.4) 0%, rgba(6, 197, 132, 0) 317rpx); |
| | | padding-bottom: 0; |
| | | padding-bottom: constant(safe-area-inset-bottom); |
| | | padding-bottom: env(safe-area-inset-bottom); |
| | | |
| | | .content { |
| | | flex: 1; |
| | | } |
| | | |
| | | .list-item { |
| | | width: 696.15rpx; |
| | | height: 388.46rpx; |
| | | background: url('/static/image/mine/orderBg.png') no-repeat; |
| | | background-size: 100% 100%; |
| | | margin: 0 auto; |
| | | } |
| | | |
| | | .item-top { |
| | | padding-top: 30.77rpx; |
| | | margin-left: 26.92rpx; |
| | | margin-right: 26.92rpx; |
| | | padding-bottom: 30.77rpx; |
| | | // border-bottom: 2rpx dashed #DADADA; |
| | | |
| | | .name { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 500; |
| | | font-size: 27rpx; |
| | | color: #191F3F; |
| | | } |
| | | |
| | | .status { |
| | | width: 104rpx; |
| | | height: 46rpx; |
| | | background: #D9FFF2; |
| | | border-radius: 12rpx; |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 25rpx; |
| | | color: #06C584; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | } |
| | | } |
| | | |
| | | .good-info { |
| | | padding: 0 28.85rpx 0rpx 26.92rpx; |
| | | } |
| | | |
| | | .use-time { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 500; |
| | | font-size: 23rpx; |
| | | color: rgba(0, 0, 0, 0.65); |
| | | |
| | | .value { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 23rpx; |
| | | color: #191F3F; |
| | | margin-left: 46.15rpx; |
| | | } |
| | | } |
| | | |
| | | .price { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 38.46rpx; |
| | | color: #FF6257; |
| | | } |
| | | |
| | | .refund { |
| | | margin-top: 38rpx; |
| | | |
| | | .title { |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 27rpx; |
| | | color: rgba(0, 0, 0, 0.85); |
| | | line-height: 46rpx; |
| | | margin-bottom: 15rpx; |
| | | } |
| | | |
| | | :deep(.u-input__textarea) { |
| | | background: rgba(0, 0, 0, 0.04); |
| | | border-radius: 19rpx; |
| | | min-height: 306rpx !important; |
| | | height: 306rpx; |
| | | padding: 27rpx 31rpx; |
| | | box-sizing: border-box; |
| | | font-size: 23rpx; |
| | | } |
| | | } |
| | | |
| | | .submit-btn { |
| | | width: 596rpx; |
| | | height: 96rpx; |
| | | background: linear-gradient(270deg, #08C866 0%, #06C584 100%); |
| | | box-shadow: 0rpx 4rpx 25rpx 0rpx rgba(6, 197, 132, 0.15), 0rpx 8rpx 19rpx 0rpx rgba(6, 197, 132, 0.19); |
| | | border-radius: 67rpx; |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 600; |
| | | font-size: 32rpx; |
| | | color: #FFFFFF; |
| | | margin: 0 auto; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <view> |
| | | <image |
| | | :src="content" |
| | | class="vw100 vh100" |
| | | mode="aspectFill" |
| | | style="display: block;" |
| | | ></image> |
| | | <image src="/static/image/home/bg.png" class="vw100 vh100" mode="aspectFill" style="display: block;"></image> |
| | | </view> |
| | | </template> |
| | | |