fix
13404089107
2025-12-31 05af204dd0e34b3183ea32c760d62917e5f9e41c
fix
5个文件已添加
5个文件已修改
1012 ■■■■■ 已修改文件
miniprogram/pages.json 373 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
miniprogram/pages/goodOrder/goodOrder.vue 244 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
miniprogram/pages/goodOrder/orderDetail.vue 266 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
miniprogram/pages/login/login.vue 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
miniprogram/pages/mine/mine.vue 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
miniprogram/pages/order/order.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
miniprogram/pages/start/start.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
miniprogram/static/image/home/bg.png 补丁 | 查看 | 原始文档 | blame | 历史
miniprogram/static/image/login/password.png 补丁 | 查看 | 原始文档 | blame | 历史
miniprogram/static/image/login/phone.png 补丁 | 查看 | 原始文档 | blame | 历史
miniprogram/pages.json
@@ -1,184 +1,191 @@
{
  "easycom": {
    "autoscan": true,
    "custom": {
      "^u-(.*)": "@/uni_modules/uview-pro/components/u-$1/u-$1.vue"
    }
  },
  "pages": [
    {
      "path": "pages/start/start",
      "style": {
        "navigationStyle": "custom", // 取消本页面的导航栏
        "app-plus": {
          "animationType": "fade-in", // 设置fade-in淡入动画,为最合理的动画类型
          "background": "transparent", // 背景透明
          "backgroundColor": "rgba(0,0,0,0)", // 背景透明
          "popGesture": "none" // 关闭IOS屏幕左边滑动关闭当前页面的功能
        }
      }
    },
    {
      "path": "pages/login/login",
      "style": {
        "navigationStyle": "custom"
      }
    },
    {
      "path": "pages/home/home",
      "style": {
        "navigationStyle": "custom"
      }
    },
    {
      "path": "pages/mine/mine",
      "style": {
        "navigationStyle": "custom"
      }
    },
    {
      "path": "pages/strategy/strategy",
      "style": {
        "navigationBarTitleText": "攻略",
        "navigationBarBackgroundColor": "#fff"
      }
    },
    {
      "path": "pages/good/good",
      "style": {
        "navigationBarTitleText": ""
      }
    },
    {
      "path": "pages/mineInfo/mineInfo",
      "style": {
        "navigationBarTitleText": "个人中心"
      }
    },
    {
      "path": "pages/order/order",
      "style": {
        "navigationBarTitleText": "我的订单"
      }
    },
    {
      "path": "pages/tourist/tourist",
      "style": {
        "navigationBarTitleText": "选择游客"
      }
    },
    {
      "path": "pages/tourist/editTourist",
      "style": {
        "navigationBarTitleText": "编辑游客"
      }
    },
    {
      "path": "pages/strategy/detail",
      "style": {
        "navigationStyle": "custom"
      }
    },
    {
      "path": "pages/notice/notice",
      "style": {
        "navigationBarTitleText": "景区公告",
        "navigationBarBackgroundColor": "#fff"
      }
    },
    {
      "path": "pages/notice/detail",
      "style": {
        "navigationBarTitleText": "景区公告",
        "navigationBarBackgroundColor": "#fff"
      }
    },
    {
      "path": "pages/contact/contact",
      "style": {
        "navigationBarTitleText": "联系客服",
        "navigationBarBackgroundColor": "#fff"
      }
    },
    {
      "path": "pages/ticket/ticket",
      "style": {
        "navigationBarTitleText": "青城后山门票预订",
        "navigationBarBackgroundColor": "#fff"
      }
    },
    {
      "path": "pages/book-notice/book-notice",
      "style": {
        "navigationBarTitleText": "预订须知",
        "navigationBarBackgroundColor": "#fff"
      }
    },
    {
      "path": "pages/orderDetail/orderDetail",
      "style": {
        "navigationStyle": "custom"
      }
    }
  ],
  "subPackages": [
    {
      "root": "pagesA",
      "pages": [
        {
          "path": "bannerDetail/bannerDetail",
          "style": {
            "navigationBarTitleText": "轮播图详情",
            "navigationBarBackgroundColor": "#fff"
          }
        },
        {
          "path": "mapAndGuide/mapAndGuide",
          "style": {
            "navigationBarTitleText": "景区导览",
            "navigationBarBackgroundColor": "#fff"
          }
        }
      ]
    }
  ],
  "tabBar": {
    "color": "#A5A3AF",
    "selectedColor": "#06C584",
    "borderStyle": "black",
    "backgroundColor": "#ffffff",
    "list": [
      {
        "pagePath": "pages/home/home",
        "iconPath": "static/image/tabBar/nohome.png",
        "selectedIconPath": "static/image/tabBar/home.png",
        "text": "首页"
      },
      {
        "pagePath": "pages/good/good",
        "iconPath": "static/image/tabBar/nogood.png",
        "selectedIconPath": "static/image/tabBar/good.png",
        "text": "文创商城"
      },
      {
        "pagePath": "pages/strategy/strategy",
        "iconPath": "static/image/tabBar/nostrategy.png",
        "selectedIconPath": "static/image/tabBar/strategy.png",
        "text": "攻略"
      },
      {
        "pagePath": "pages/mine/mine",
        "iconPath": "static/image/tabBar/nomine.png",
        "selectedIconPath": "static/image/tabBar/mine.png",
        "text": "我的"
      }
    ]
  },
  "globalStyle": {
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "青城后山",
    "navigationBarBackgroundColor": "#fff",
    "backgroundColor": "#fff"
  },
  "uniIdRouter": {}
}
    "easycom": {
        "autoscan": true,
        "custom": {
            "^u-(.*)": "@/uni_modules/uview-pro/components/u-$1/u-$1.vue"
        }
    },
    "pages": [{
            "path": "pages/start/start",
            "style": {
                "navigationStyle": "custom", // 取消本页面的导航栏
                "app-plus": {
                    "animationType": "fade-in", // 设置fade-in淡入动画,为最合理的动画类型
                    "background": "transparent", // 背景透明
                    "backgroundColor": "rgba(0,0,0,0)", // 背景透明
                    "popGesture": "none" // 关闭IOS屏幕左边滑动关闭当前页面的功能
                }
            }
        },
        {
            "path": "pages/login/login",
            "style": {
                "navigationStyle": "custom"
            }
        },
        {
            "path": "pages/home/home",
            "style": {
                "navigationStyle": "custom"
            }
        },
        {
            "path": "pages/mine/mine",
            "style": {
                "navigationStyle": "custom"
            }
        },
        {
            "path": "pages/strategy/strategy",
            "style": {
                "navigationBarTitleText": "攻略",
                "navigationBarBackgroundColor": "#fff"
            }
        },
        {
            "path": "pages/good/good",
            "style": {
                "navigationBarTitleText": ""
            }
        },
        {
            "path": "pages/mineInfo/mineInfo",
            "style": {
                "navigationBarTitleText": "个人中心"
            }
        },
        {
            "path": "pages/order/order",
            "style": {
                "navigationBarTitleText": "我的订单"
            }
        },
        {
            "path": "pages/tourist/tourist",
            "style": {
                "navigationBarTitleText": "选择游客"
            }
        },
        {
            "path": "pages/tourist/editTourist",
            "style": {
                "navigationBarTitleText": "编辑游客"
            }
        },
        {
            "path": "pages/strategy/detail",
            "style": {
                "navigationStyle": "custom"
            }
        },
        {
            "path": "pages/notice/notice",
            "style": {
                "navigationBarTitleText": "景区公告",
                "navigationBarBackgroundColor": "#fff"
            }
        },
        {
            "path": "pages/notice/detail",
            "style": {
                "navigationBarTitleText": "景区公告",
                "navigationBarBackgroundColor": "#fff"
            }
        },
        {
            "path": "pages/contact/contact",
            "style": {
                "navigationBarTitleText": "联系客服",
                "navigationBarBackgroundColor": "#fff"
            }
        },
        {
            "path": "pages/ticket/ticket",
            "style": {
                "navigationBarTitleText": "青城后山门票预订",
                "navigationBarBackgroundColor": "#fff"
            }
        },
        {
            "path": "pages/book-notice/book-notice",
            "style": {
                "navigationBarTitleText": "预订须知",
                "navigationBarBackgroundColor": "#fff"
            }
        },
        {
            "path": "pages/orderDetail/orderDetail",
            "style": {
                "navigationStyle": "custom"
            }
        },
        {
            "path": "pages/goodOrder/goodOrder",
            "style": {
                "navigationBarTitleText": "订单列表"
            }
        },
        {
            "path": "pages/goodOrder/orderDetail",
            "style": {
                "navigationStyle": "custom"
            }
        }
    ],
    "subPackages": [{
        "root": "pagesA",
        "pages": [{
                "path": "bannerDetail/bannerDetail",
                "style": {
                    "navigationBarTitleText": "轮播图详情",
                    "navigationBarBackgroundColor": "#fff"
                }
            },
            {
                "path": "mapAndGuide/mapAndGuide",
                "style": {
                    "navigationBarTitleText": "景区导览",
                    "navigationBarBackgroundColor": "#fff"
                }
            }
        ]
    }],
    "tabBar": {
        "color": "#A5A3AF",
        "selectedColor": "#06C584",
        "borderStyle": "black",
        "backgroundColor": "#ffffff",
        "list": [{
                "pagePath": "pages/home/home",
                "iconPath": "static/image/tabBar/nohome.png",
                "selectedIconPath": "static/image/tabBar/home.png",
                "text": "首页"
            },
            {
                "pagePath": "pages/good/good",
                "iconPath": "static/image/tabBar/nogood.png",
                "selectedIconPath": "static/image/tabBar/good.png",
                "text": "文创商城"
            },
            {
                "pagePath": "pages/strategy/strategy",
                "iconPath": "static/image/tabBar/nostrategy.png",
                "selectedIconPath": "static/image/tabBar/strategy.png",
                "text": "攻略"
            },
            {
                "pagePath": "pages/mine/mine",
                "iconPath": "static/image/tabBar/nomine.png",
                "selectedIconPath": "static/image/tabBar/mine.png",
                "text": "我的"
            }
        ]
    },
    "globalStyle": {
        "navigationBarTextStyle": "black",
        "navigationBarTitleText": "青城后山",
        "navigationBarBackgroundColor": "#fff",
        "backgroundColor": "#fff"
    },
    "uniIdRouter": {}
}
miniprogram/pages/goodOrder/goodOrder.vue
New file
@@ -0,0 +1,244 @@
<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>
miniprogram/pages/goodOrder/orderDetail.vue
New file
@@ -0,0 +1,266 @@
<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>
miniprogram/pages/login/login.vue
@@ -26,15 +26,29 @@
            </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>
@@ -48,7 +62,7 @@
    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);
@@ -235,8 +249,7 @@
</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>
@@ -261,7 +274,10 @@
    }
    .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 {
@@ -278,4 +294,19 @@
    ::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>
miniprogram/pages/mine/mine.vue
@@ -24,29 +24,29 @@
            <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">
                            售后退款
@@ -59,7 +59,7 @@
                <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">
@@ -68,7 +68,7 @@
                        </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>
@@ -78,7 +78,7 @@
                        </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">
@@ -87,7 +87,7 @@
                        </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>
@@ -96,7 +96,7 @@
                            </view>
                        </view>
                        <image src="/static/image/mine/gary.png" class="w-23 h-23" mode="aspectFill"></image>
                    </view>
                    </view> -->
                </view>
            </view>
        </view>
@@ -131,32 +131,33 @@
        })
    }
    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>
miniprogram/pages/order/order.vue
@@ -52,6 +52,7 @@
<script setup lang="ts">
    import { ref, reactive } from "vue";
    import { onLoad, onShow, onReachBottom } from "@dcloudio/uni-app"
    const tabList = ref([{
        label: '全部',
@@ -76,6 +77,13 @@
    const changeTab = (item) => {
        activeTab.value = item.value
    }
    onLoad((query) => {
        console.log('//////////////', query);
        if (query.type) {
            activeTab.value = query.type
        }
    })
</script>
<style scoped>
miniprogram/pages/start/start.vue
@@ -1,11 +1,6 @@
<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>
miniprogram/static/image/home/bg.png
miniprogram/static/image/login/password.png
miniprogram/static/image/login/phone.png