2 Commits

Author SHA1 Message Date
  xiaobo f5b1bbeea3 22 5 months ago
  xiaobo f05d0245e8 1 5 months ago
45 changed files with 1708 additions and 301 deletions
Split View
  1. +6
    -1
      components/active/active-item.vue
  2. +8
    -2
      components/zhaomu/zhaomu-item.vue
  3. +110
    -117
      components/zhaomu/zlx-item.vue
  4. BIN
      doc/address.png
  5. BIN
      doc/c.png
  6. BIN
      doc/cart.png
  7. BIN
      doc/category.png
  8. BIN
      doc/center.png
  9. BIN
      doc/editAddress.png
  10. BIN
      doc/home-s.png
  11. BIN
      doc/home.png
  12. BIN
      doc/order.png
  13. BIN
      doc/productDetail.png
  14. BIN
      doc/productUnit.png
  15. BIN
      doc/purse.png
  16. +3
    -3
      manifest.json
  17. +28
    -6
      pages.json
  18. +38
    -38
      pages/index/cart.vue
  19. +15
    -8
      pages/index/center.vue
  20. +13
    -2
      pages/index/index.vue
  21. +10
    -2
      pages/index/member.vue
  22. +4
    -4
      pages/mixins/globalMixin.js
  23. +111
    -109
      pages_my/activeList.vue
  24. +93
    -3
      pages_my/qiandao-list.vue
  25. +329
    -0
      pages_my/user-info.vue
  26. +228
    -0
      pages_my/user-msg.vue
  27. +3
    -2
      pages_my/zlx-qiandao.vue
  28. +413
    -0
      pages_order/huodong-detail.vue
  29. +292
    -0
      pages_order/lvyou-detail.vue
  30. +1
    -1
      pages_order/orderDetails.vue
  31. +1
    -1
      pages_zlx/zlx-form.vue
  32. BIN
      static/image/cart/bgIcon.png
  33. BIN
      static/image/center/nan-icon.png
  34. BIN
      static/image/center/nv-icon.png
  35. BIN
      static/image/center/user-icon-1.png
  36. BIN
      static/image/center/user-icon-2.png
  37. BIN
      static/image/center/user-icon-3.png
  38. BIN
      static/image/center/user-icon-4.png
  39. BIN
      static/image/center/user-icon-5.png
  40. BIN
      static/image/home/address-icon-2.png
  41. BIN
      static/image/home/shoucang-icon.png
  42. BIN
      static/image/home/title-line.png
  43. BIN
      static/image/home/zhuanfa-icon.png
  44. BIN
      static/image/member/item-img.png
  45. +2
    -2
      uni_modules/uv-navbar/components/uv-navbar/props.js

+ 6
- 1
components/active/active-item.vue View File

@ -13,7 +13,7 @@
</view>
<view class="price">
<view class="num-box">20/40</view>
<view class="btn-box">立即报名</view>
<view class="btn-box" @click="toDetail">立即报名</view>
</view>
</view>
</view>
@ -50,6 +50,11 @@
uni.navigateTo({
url: '/pages_order/orderDetails'
})
},
toDetail() {
uni.navigateTo({
url:'/pages_order/huodong-detail'
})
}
}
};


+ 8
- 2
components/zhaomu/zhaomu-item.vue View File

@ -3,7 +3,7 @@
<view class="container" v-for="item in 2" :key="item">
<view class="content">
<view class="left">
<image src="@/static/image/member/item-img.png" mode="widthFix"></image>
<image src="https://up.zhuoku.org/22/a4/60/50/fc3bd0b4e656911fccdde4383637c1cd.jpg"></image>
</view>
<view class="right">
<view class="detailed">
@ -23,7 +23,7 @@
<uv-avatar-group :urls="urls" size="45rpx" gap="0.1"></uv-avatar-group>
<view class="num">4人参加</view>
</view>
<view class="bottom-box-r">
<view class="bottom-box-r" @click="toZhaomu">
参与招募
</view>
</view>
@ -65,6 +65,11 @@
uni.navigateTo({
url: '/pages_order/orderDetails'
})
},
toZhaomu() {
uni.navigateTo({
url: '/pages_order/lvyou-detail'
})
}
}
};
@ -89,6 +94,7 @@
image {
width: 228rpx;
height: 228rpx;
}
}


+ 110
- 117
components/zhaomu/zlx-item.vue View File

@ -1,21 +1,19 @@
<template>
<view class="cardList">
<view class="container" v-for="(item, index) in cardListData" :key="index">
<view class="content" :class="['U','S'].includes(item.state) ? 'content_border' : ''">
<view class="left">
<img :src="item.imgUrl" alt="">
<view class="content">
<view class="left">
<img src="https://up.zhuoku.org/22/a4/60/50/fc3bd0b4e656911fccdde4383637c1cd.jpg" alt="">
</view>
<view class="right">
<view class="detailed">
<view class="title">夏日去撒野旅游计划</view>
<view class="date">2024.08.23 12:00</view>
<view class="address">成都市东丽湖露营地</view>
</view>
<view class="right">
<view class="detailed">
<view class="title">{{item.title}}</view>
<view class="date">{{item.time}}</view>
<view class="address">{{item.address}}</view>
</view>
<view class="price">
<view class="num-box">20/40</view>
<view class="btn-box" v-if="index == 1" @click="qiandaoClick">开始签到</view>
<view class="btn-box jieshu-btn" v-else>已结束</view>
</view>
<view class="price" v-if="showBottom">
<view class="num-box">20/40</view>
<view class="btn-box" @click="qiandaoClick">开始签到</view>
<!-- <view class="btn-box jieshu-btn" v-else>已结束</view> -->
</view>
</view>
</view>
@ -25,10 +23,10 @@
<script>
export default {
props: {
cardListData: {
type: Array,
default: []
},
showBottom:{
type:Boolean,
default:true
}
},
data() {
return {
@ -52,8 +50,8 @@
url: '/pages_order/orderDetails'
})
},
qiandaoClick(item) {
this.$emit('qiandaoClick',item)
qiandaoClick() {
this.$emit('qiandaoClick')
}
}
};
@ -61,122 +59,117 @@
<style scoped lang="scss">
.cardList {
.container {
margin-top: 31rpx;
padding: 25rpx 0;
border-radius: 20rpx;
.content {
display: flex;
padding: 24rpx 35rpx;
background: #1B1713;
border-radius: 20rpx;
margin-bottom: 20rpx;
.left {
width: 228rpx;
height: 228rpx;
border-radius: 20rpx;
overflow: hidden;
.content_border {
border-bottom: 1px solid #2A2A2A;
img {
width: 100%;
height: 100%;
}
}
.content {
.right {
display: flex;
padding: 24rpx 35rpx;
flex-direction: column;
justify-content: space-between;
flex: 1;
margin-left: 26rpx;
color: $uni-text-color-grey;
font-size: 24rpx;
.detailed {
.title {
font-size: 32rpx;
color: #fff;
padding-top: 11rpx;
}
.left {
width: 228rpx;
height: 228rpx;
border-radius: 20rpx;
overflow: hidden;
.date {
padding: 25rpx 0 19rpx;
display: flex;
align-items: center;
&::before {
content: '';
display: block;
background: url('@/static/image/cart/timeIcon.png') no-repeat;
background-size: 100% 100%;
width: 24rpx;
height: 24rpx;
margin-right: 10rpx;
}
}
.address {
display: flex;
align-items: center;
img {
width: 100%;
height: 100%;
&::before {
content: '';
display: block;
background: url('@/static/image/cart/addressIcon.png') no-repeat;
background-size: 100% 100%;
width: 22rpx;
height: 26rpx;
margin-right: 10rpx;
}
}
}
.right {
.price {
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
flex: 1;
margin-left: 26rpx;
color: $uni-text-color-grey;
font-size: 24rpx;
.detailed {
.title {
font-size: 32rpx;
color: #fff;
padding-top: 11rpx;
}
.date {
padding: 25rpx 0 19rpx;
display: flex;
align-items: center;
&::before {
content: '';
display: block;
background: url('@/static/image/cart/timeIcon.png') no-repeat;
background-size: 100% 100%;
width: 24rpx;
height: 24rpx;
margin-right: 10rpx;
}
}
.num-box {
font-size: 27rpx;
color: #fff;
}
.address {
display: flex;
align-items: center;
&::before {
content: '';
display: block;
background: url('@/static/image/cart/addressIcon.png') no-repeat;
background-size: 100% 100%;
width: 22rpx;
height: 26rpx;
margin-right: 10rpx;
}
}
.btn-box {
width: 180rpx;
height: 54rpx;
background: url('@/static/image/member/btn-2.png') no-repeat;
background-size: 100% 100%;
font-weight: 500;
font-size: 23rpx;
color: #FFFFFF;
text-align: center;
line-height: 54rpx;
border-radius: 30rpx;
}
.price {
display: flex;
align-items: center;
justify-content: space-between;
.num-box {
font-size: 27rpx;
color: #fff;
}
.btn-box {
width: 180rpx;
height: 54rpx;
background: url('@/static/image/member/btn-2.png') no-repeat;
background-size: 100% 100%;
font-weight: 500;
font-size: 23rpx;
color: #FFFFFF;
text-align: center;
line-height: 54rpx;
border-radius: 30rpx;
}
.jieshu-btn {
background: #666666;
}
.jieshu-btn {
background: #666666;
}
}
}
}
.button-sp-area {
text-align: right;
padding-top: 20rpx;
.mini-btn {
width: 166rpx;
height: 53rpx;
line-height: 53rpx;
font-size: 24rpx;
border-radius: 50rpx;
margin-left: 20rpx;
background-color: #34312E;
color: #AFAFAF;
}
.button-sp-area {
text-align: right;
padding-top: 20rpx;
.mini-btn {
width: 166rpx;
height: 53rpx;
line-height: 53rpx;
font-size: 24rpx;
border-radius: 50rpx;
margin-left: 20rpx;
background-color: #34312E;
color: #AFAFAF;
}
}
}


BIN
doc/address.png View File

Before After
Width: 597  |  Height: 1255  |  Size: 149 KiB

BIN
doc/c.png View File

Before After
Width: 586  |  Height: 1275  |  Size: 120 KiB

BIN
doc/cart.png View File

Before After
Width: 604  |  Height: 1279  |  Size: 137 KiB

BIN
doc/category.png View File

Before After
Width: 606  |  Height: 1263  |  Size: 136 KiB

BIN
doc/center.png View File

Before After
Width: 580  |  Height: 1266  |  Size: 140 KiB

BIN
doc/editAddress.png View File

Before After
Width: 601  |  Height: 1276  |  Size: 157 KiB

BIN
doc/home-s.png View File

Before After
Width: 595  |  Height: 1270  |  Size: 176 KiB

BIN
doc/home.png View File

Before After
Width: 586  |  Height: 1276  |  Size: 271 KiB

BIN
doc/order.png View File

Before After
Width: 588  |  Height: 1270  |  Size: 107 KiB

BIN
doc/productDetail.png View File

Before After
Width: 604  |  Height: 1264  |  Size: 177 KiB

BIN
doc/productUnit.png View File

Before After
Width: 619  |  Height: 1254  |  Size: 161 KiB

BIN
doc/purse.png View File

Before After
Width: 615  |  Height: 1267  |  Size: 138 KiB

+ 3
- 3
manifest.json View File

@ -1,6 +1,6 @@
{
"name" : "unapp模板",
"appid" : "__UNI__197A38F",
"name" : "vtrip",
"appid" : "__UNI__EFB8158",
"description" : "",
"versionName" : "1.0.0",
"versionCode" : "100",
@ -52,7 +52,7 @@
"quickapp" : {},
/* */
"mp-weixin" : {
"appid" : "wx5e9eee62b6cf5315",
"appid" : "wx4bf1b331b5f4e8d8",
"setting" : {
"urlCheck" : false
},


+ 28
- 6
pages.json View File

@ -60,7 +60,20 @@
{
"path": "orderDetails",
"style": {
"enablePullDownRefresh": true,
"navigationStyle": "custom" ,
"navigationBarTextStyle": "white"
}
},
{
"path": "lvyou-detail",
"style": {
"navigationStyle": "custom" ,
"navigationBarTextStyle": "white"
}
},
{
"path": "huodong-detail",
"style": {
"navigationStyle": "custom" ,
"navigationBarTextStyle": "white"
}
@ -102,7 +115,6 @@
{
"path": "zlx-qiandao",
"style": {
"enablePullDownRefresh": true,
"navigationStyle": "custom" ,
"navigationBarTextStyle": "white"
}
@ -110,7 +122,20 @@
{
"path": "qiandao-list",
"style": {
"enablePullDownRefresh": true,
"navigationStyle": "custom" ,
"navigationBarTextStyle": "white"
}
},
{
"path": "user-msg",
"style": {
"navigationStyle": "custom" ,
"navigationBarTextStyle": "white"
}
},
{
"path": "user-info",
"style": {
"navigationStyle": "custom" ,
"navigationBarTextStyle": "white"
}
@ -118,7 +143,6 @@
{
"path": "collection",
"style": {
"enablePullDownRefresh": true,
"navigationStyle": "custom" ,
"navigationBarTextStyle": "white"
}
@ -126,7 +150,6 @@
{
"path": "travelList",
"style": {
"enablePullDownRefresh": true,
"navigationStyle": "custom" ,
"navigationBarTextStyle": "white"
}
@ -134,7 +157,6 @@
{
"path": "activeList",
"style": {
"enablePullDownRefresh": true,
"navigationStyle": "custom" ,
"navigationBarTextStyle": "white"
}


+ 38
- 38
pages/index/cart.vue View File

@ -1,20 +1,17 @@
<template>
<view class="cart">
<view class="head-box"></view>
<Navbar title="我的订单" :bgColor="bgColor" leftIconSize="0px" height="100rpx" :titleStyle="{color:fontColor}" />
<Navbar title="我的订单" :bgColor="bgColor" leftIconSize="0px" height="100rpx" :titleStyle="{color:fontColor}" />
<view class="content contentPosition_">
<uv-tabs
:scrollable="false"
@click= "tabs"
:list="tabList"
lineWidth="40"
:lineColor="`url(${lineBg}) 100% 100%`"
:activeStyle="{color: '#FD5C5C', fontWeight: 'bold',transform: 'scale(1.05)'}"
:inactiveStyle="{color: '#999', transform: 'scale(1)'}"
itemStyle="padding-left: 15px; padding-right: 15px; height: 44px;"
></uv-tabs>
<button class="mini-btn" size="mini" @click="travelList">旅行列表</button>
<button class="mini-btn" size="mini" @click="activeList">活动列表</button>
<!-- <uv-sticky offsetTop="200rpx"> -->
<uv-tabs :scrollable="false" @click="tabs" :list="tabList" lineWidth="40"
:lineColor="`url(${lineBg}) 100% 100%`"
:activeStyle="{color: '#FD5C5C', fontWeight: 'bold',transform: 'scale(1.05)'}"
:inactiveStyle="{color: '#999', transform: 'scale(1)'}"
itemStyle="padding-left: 15px; padding-right: 15px; height: 44px;"></uv-tabs>
<!-- </uv-sticky> -->
<!-- <button class="mini-btn" size="mini" @click="travelList">旅行列表</button> -->
<!-- <button class="mini-btn" size="mini" @click="activeList">活动列表</button> -->
<cardList :cardListData="cardListData" @btnClick="btnClick" @toOrderDetails="toOrderDetails" />
</view>
<tabber select="cart" />
@ -23,16 +20,18 @@
<script>
import tabber from '@/components/base/tabbar.vue'
import cardList from '@/components/cart/cardList.vue'
import cardList from '@/components/cart/CardList.vue'
import Navbar from '@/pages/components/Navbar.vue'
import { globalMixin } from '../mixins/globalMixin';
import {
globalMixin
} from '../mixins/globalMixin';
export default {
mixins: [globalMixin],
components:{
mixins: [globalMixin],
components: {
tabber,
cardList,
Navbar
cardList,
Navbar
},
data() {
return {
@ -54,8 +53,7 @@
},
],
lineBg: require('@/static/image/cart/tabIcon.png'),
cardListData: [
{
cardListData: [{
imgUrl: 'https://up.zhuoku.org/22/a4/60/50/fc3bd0b4e656911fccdde4383637c1cd.jpg',
orderTime: '2024.08.23 12:00',
state: 'U',
@ -116,33 +114,35 @@
}
},
methods: {
travelList() {
uni.navigateTo({
url: '/pages_my/travelList'
})
},
activeList() {
uni.navigateTo({
url: '/pages_my/activeList'
})
},
travelList() {
uni.navigateTo({
url: '/pages_my/travelList'
})
},
activeList() {
uni.navigateTo({
url: '/pages_my/activeList'
})
},
tabs(val) {
console.log(val);
},
toOrderDetails(val) {
uni.navigateTo({
url: '/pages_order/orderDetails'
})
uni.navigateTo({
url: '/pages_order/orderDetails'
})
},
btnClick({ id }) { // 0 1 2 3
btnClick({
id
}) { // 0 1 2 3
console.log(id);
if(id === '2') {
if (id === '2') {
uni.navigateTo({
url: '/pages_order/orderEvaluation'
})
return;
}
if(id === '3') {
if (id === '3') {
uni.navigateTo({
url: '/pages_order/invoiceIssuance'
})
@ -153,4 +153,4 @@
}
</script>
<style scoped lang="scss"></style>
<style scoped lang="scss"></style>

+ 15
- 8
pages/index/center.vue View File

@ -4,11 +4,11 @@
<uv-navbar title="个人中心" :bgColor="bgColor" height="100rpx" :titleStyle="{color:'#fff'}"></uv-navbar>
<view class="content">
<view class="head">
<view class="headImage">
<view class="head" @click="toInfo">
<view class="headImage" @click="toInfo">
<image :src="userInfo.headImage" mode="aspectFill"></image>
</view>
<view class="info">
<view class="info" @click="toInfo">
<view class="vip">
但愿人长久
</view>
@ -16,7 +16,7 @@
158123321
</view>
</view>
<view class="setting">
<view class="setting" @click="jump({url:'/pages_my/user-msg'})">
<uv-icon name="edit-pen" size="50rpx" color="#fff"></uv-icon>
</view>
</view>
@ -29,17 +29,17 @@
<view class="order">
<view class="box">
<view class="boxs"
@click="$utils.navigateTo('/pages/index/order?type=1')">
@click="$utils.navigateTo('/pages_my/activeList')">
<image src="@/static/image/center/order-1.png" mode="aspectFill" />
<view>待参加</view>
</view>
<view class="boxs"
@click="$utils.navigateTo('/pages/index/order?type=2')">
@click="$utils.navigateTo('/pages_my/activeList')">
<image src="@/static/image/center/order-2.png" mode="aspectFill" />
<view>已完成</view>
</view>
<view class="boxs"
@click="$utils.navigateTo('/pages/index/order?type=3')">
@click="$utils.navigateTo('/pages_my/activeList')">
<image src="@/static/image/center/order-3.png" mode="aspectFill" />
<view>已取消</view>
</view>
@ -139,6 +139,12 @@
uni.navigateTo({
url:item.url
})
},
toInfo() {
console.log(123)
uni.navigateTo({
url:'/pages_my/user-info'
})
}
}
}
@ -158,10 +164,11 @@
width: 100%;
height: 534rpx;
position: absolute;
z-index: -1;
}
.content {
padding: 0 30rpx;
padding-top: calc(var(--status-bar-height) + 100rpx);
padding-top: calc(var(--status-bar-height) + 110rpx);
padding-bottom: 20rpx;
}
}


+ 13
- 2
pages/index/index.vue View File

@ -1,7 +1,7 @@
<template>
<view class="page">
<view class="head-box"></view>
<uv-navbar title=" " leftIcon=" " bgColor="transparent" height="100rpx"></uv-navbar>
<uv-navbar :title="navTitle" leftIcon=" " :titleStyle="{color:'#fff'}" :bgColor="bgColor" height="100rpx"></uv-navbar>
<view class="content">
<view class="search-box">
<view class="search-box-l">
@ -92,6 +92,8 @@
},
data() {
return {
bgColor:'transparent',
navTitle:'',
keyword:'',
list: [
'https://cdn.uviewui.com/uview/swiper/swiper1.png',
@ -125,6 +127,15 @@
]
}
},
onPageScroll(e) {
if(e.scrollTop > 50) {
this.bgColor = '#49070c'
this.navTitle = '首页'
}else{
this.bgColor = 'transparent'
this.navTitle = ''
}
},
methods:{
tabs(val) {
console.log(val);
@ -150,7 +161,7 @@
.content {
color: #fff;
padding: 0 30rpx;
padding-top: calc(var(--status-bar-height) + 100rpx);
padding-top: calc(var(--status-bar-height) + 110rpx);
.search-box {
display: flex;


+ 10
- 2
pages/index/member.vue View File

@ -1,7 +1,7 @@
<template>
<view class="page">
<view class="head-box"></view>
<uv-navbar title="招募" leftIcon=" " bgColor="transparent" height="100rpx" :titleStyle="{color:'#fff'}"></uv-navbar>
<uv-navbar title="招募" leftIcon=" " :bgColor="bgColor" height="100rpx" :titleStyle="{color:'#fff'}"></uv-navbar>
<view class="content">
<view class="search-box">
<view class="search-box-r">
@ -58,6 +58,7 @@
},
data() {
return {
bgColor:'transparent',
list: [
'https://cdn.uviewui.com/uview/swiper/swiper3.png',
]
@ -69,6 +70,13 @@
},
onShow() {
},
onPageScroll(e) {
if(e.scrollTop > 50) {
this.bgColor ='#49070c'
}else{
this.bgColor ='transparent'
}
},
methods:{
toRenzheng() {
@ -96,7 +104,7 @@
}
.content {
padding: 0 30rpx;
padding-top: calc(var(--status-bar-height) + 100rpx);
padding-top: calc(var(--status-bar-height) + 110rpx);
.search-box {
display: flex;


+ 4
- 4
pages/mixins/globalMixin.js View File

@ -17,10 +17,10 @@ export const globalMixin = {
created() {
},
onPageScroll(e) {
if(e.scrollTop > 30) {
this.bgColor ='#fff'
this.fontColor ="#000",
this.leftIconColor ="#000"
if(e.scrollTop > 50) {
this.bgColor ='#49070c'
this.fontColor ="#fff",
this.leftIconColor ="#fff"
}else{
this.bgColor ='transparent'
this.fontColor ="#fff",


+ 111
- 109
pages_my/activeList.vue View File

@ -1,83 +1,59 @@
<template>
<view class="travelList">
<view class="head-box"></view>
<Navbar title="活动列表" :autoBack="true" :bgColor="bgColor" leftIconSize="18px" height="100rpx" :leftIconColor="leftIconColor" :titleStyle="{color:fontColor}" />
<view class="content contentPosition_">
<view class="drop">
<uv-drop-down
ref="dropDown"
text-color="#fff"
text-size="30rpx"
sign="dropDown_1"
text-active-color="#fff"
:extra-icon="{name:'arrow-down-fill',color:'#666',size:'26rpx'}"
:extra-active-icon="{name:'arrow-up-fill',color:'#fff',size:'26rpx'}"
:defaultValue="defaultValue"
:custom-style="{padding: '0 30rpx'}"
@click="selectMenu"
>
<uv-drop-down-item
name="order"
type="2"
:label="dropItem('order').label"
:value="dropItem('order').value">
</uv-drop-down-item>
<uv-drop-down-item
name="place"
type="2"
:label="dropItem('type').label"
:value="dropItem('type').value">
</uv-drop-down-item>
<uv-drop-down-item
name="type"
type="2"
:label="dropItem('type').label"
:value="dropItem('type').value">
</uv-drop-down-item>
</uv-drop-down>
<view class="head-box"></view>
<uv-navbar autoBack title="活动列表" leftIconColor="#fff" :bgColor="bgColor" height="100rpx" :titleStyle="{color:'#fff'}"></uv-navbar>
<view class="content">
<view class="drop">
<uv-drop-down ref="dropDown" text-color="#fff" text-size="30rpx" sign="dropDown_1" text-active-color="#fff"
:extra-icon="{name:'arrow-down-fill',color:'#666',size:'26rpx'}"
:extra-active-icon="{name:'arrow-up-fill',color:'#fff',size:'26rpx'}" :defaultValue="defaultValue"
:custom-style="{padding: '0 30rpx'}" @click="selectMenu">
<uv-drop-down-item name="order" type="2" :label="dropItem('order').label" :value="dropItem('order').value">
</uv-drop-down-item>
<uv-drop-down-item name="place" type="2" :label="dropItem('type').label" :value="dropItem('type').value">
</uv-drop-down-item>
<uv-drop-down-item name="type" type="2" :label="dropItem('type').label" :value="dropItem('type').value">
</uv-drop-down-item>
</uv-drop-down>
<uv-drop-down-popup
sign="dropDown_1"
:click-overlay-on-close="true"
:currentDropItem="currentDropItem"
@clickItem="clickItem"
@popupChange="change"
></uv-drop-down-popup>
</view>
<view class="info cardStyle_">
<view class="left">
<image src="https://img0.baidu.com/it/u=4274003247,920124130&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1031" alt="">
</view>
<view class="right">
<view class="detailed">
<view class="title">夏日去撒野旅游计划</view>
<view class="date">2024.10.28 10:00</view>
<view class="address">成都市东丽湖露营地32号</view>
</view>
<view class="data">
<text>¥233.00</text>
<text>11/40</text>
<text class="btn">已开票</text>
</view>
</view>
</view>
</view>
<uv-drop-down-popup sign="dropDown_1" :click-overlay-on-close="true" :currentDropItem="currentDropItem"
@clickItem="clickItem" @popupChange="change"></uv-drop-down-popup>
</view>
<view class="info cardStyle_">
<view class="left">
<image src="https://img0.baidu.com/it/u=4274003247,920124130&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1031"
alt="">
</view>
<view class="right">
<view class="detailed">
<view class="title">夏日去撒野旅游计划</view>
<view class="date">2024.10.28 10:00</view>
<view class="address">成都市东丽湖露营地32号</view>
</view>
<view class="data">
<text>¥233.00</text>
<text>11/40</text>
<text class="btn">已开票</text>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import Navbar from '@/pages/components/Navbar.vue'
import { globalMixin } from '../pages/mixins/globalMixin';
export default{
onPageScroll() {
import Navbar from '@/pages/components/Navbar.vue'
// import { globalMixin } from '../pages/mixins/globalMixin';
export default {
onPageScroll() {
//
this.$refs.dropDown.init();
},
mixins: [globalMixin],
components:{
Navbar
},
computed: {
// mixins: [globalMixin],
// components:{
// Navbar
// },
computed: {
dropItem(name) {
return (name) => {
const result = {};
@ -99,10 +75,15 @@
},
data() {
return {
// value
bgColor:'transparent',
// value
defaultValue: [0, 'all', '0'],
//
result: [{ name: 'order', label: '全部', value: 'new' }],
result: [{
name: 'order',
label: '全部',
value: 'new'
}],
// { name: 'order', label: '', value: 'new' }
activeName: 'order',
order: {
@ -145,15 +126,19 @@
}
},
methods: {
change(e) {
console.log('弹窗打开状态:',e);
change(e) {
console.log('弹窗打开状态:', e);
},
/**
* 点击每个筛选项回调
* @param {Object} e { name, active, type } = e
*/
selectMenu(e) {
const { name, active, type } = e;
const {
name,
active,
type
} = e;
this.activeName = name;
// type 1 type1
if (type == 1) {
@ -165,7 +150,8 @@
} else {
const find = this.result.find(item => item.name == this.activeName);
if (find) {
const findIndex = this[this.activeName].child.findIndex(item => item.label == find.label && item.value == find.value);
const findIndex = this[this.activeName].child.findIndex(item => item.label == find.label && item.value ==
find.value);
this[this.activeName].activeIndex = findIndex;
} else {
this[this.activeName].activeIndex = 0;
@ -178,7 +164,10 @@
*/
clickItem(e) {
// let
let { label, value } = e;
let {
label,
value
} = e;
const findIndex = this.result.findIndex(item => item.name == this.activeName);
if (this.defaultValue.indexOf(value) > -1 && this[this.activeName].label) {
label = this[this.activeName].label;
@ -206,37 +195,50 @@
}
</script>
<style scoped lang="scss">
/deep/.uv-sticky__content{
.uv-drop-down {
justify-content: normal;
border: 0;
background: transparent;
}
}
.travelList {
margin-bottom: 500rpx;
.content {
.info {
position: relative;
margin: 10rpx 32rpx 36rpx;;
padding: 35rpx 0 35rpx 24rpx;
border-radius: 26rpx;
.right {
.data {
display: flex;
justify-content: space-between;
align-items: center;
.btn {
background: #381615;
color: $uni-color-primary;
padding: 10rpx 40rpx;
border-radius: 30rpx 0px 0px 30rpx;
}
}
}
}
}
}
.head-box {
background: url('@/static/image/nav-bg.png') no-repeat;
background-size: 100% 100%;
width: 100%;
height: 534rpx;
position: absolute;
}
.content {
padding-top: calc(var(--status-bar-height) + 110rpx);
}
/deep/.uv-sticky__content {
.uv-drop-down {
justify-content: normal;
border: 0;
background: transparent;
}
}
.travelList {
margin-bottom: 500rpx;
.content {
.info {
position: relative;
margin: 10rpx 32rpx 36rpx;
;
padding: 35rpx 0 35rpx 24rpx;
border-radius: 26rpx;
.right {
.data {
display: flex;
justify-content: space-between;
align-items: center;
.btn {
background: #381615;
color: $uni-color-primary;
padding: 10rpx 40rpx;
border-radius: 30rpx 0px 0px 30rpx;
}
}
}
}
}
}
</style>

+ 93
- 3
pages_my/qiandao-list.vue View File

@ -4,18 +4,52 @@
<uv-navbar autoBack title="签到列表" leftIconColor="#fff" :bgColor="bgColor" height="100rpx" :titleStyle="{color:'#fff'}"></uv-navbar>
<view class="content">
<zlx-item :showBottom="false"></zlx-item>
<view class="xie-box-val" v-for="(item,i) in signList" :key="i">
<view class="val-text">
<view>{{item.name}}</view>
<view class="phone-box">{{item.phone}}</view>
<view class="type-box">{{item.type}}X{{item.num}}</view>
</view>
<view class="choose-box" >
<view class="normol-box" v-if="i == 1"></view>
<image src="@/static/image/member/choose-icon.png" mode="widthFix" v-else></image>
</view>
</view>
</view>
<view class="btn-box">
<uv-button @click="saoma" text="扫码签到" color="#381615" shape="circle" :customStyle="btnCustomStyle"></uv-button>
</view>
</view>
</template>
<script>
import zlxItem from '@/components/zhaomu/zlx-item.vue'
export default{
components:{
zlxItem
},
data() {
return {
btnCustomStyle:{
color:'#FF5858'
},
bgColor:'transparent',
signList:[
{
name:'黎明',
phone:'19918812201',
type:'早鸟票',
num:1
},
{
name:'刘德华',
phone:'19918812201',
type:'尊享票',
num:3
}
]
}
},
onPageScroll(e) {
@ -26,7 +60,13 @@
}
},
methods:{
saoma() {
uni.scanCode({
success(res) {
}
})
}
}
}
</script>
@ -43,9 +83,59 @@
width: 100%;
height: 534rpx;
position: absolute;
z-index: -1;
}
.content {
padding: 0 30rpx;
padding-top: calc(var(--status-bar-height) + 100rpx);
padding-top: calc(var(--status-bar-height) + 110rpx);
.xie-box-val {
margin-top: 34rpx;
margin-bottom: 16rpx;
height: 116rpx;
background: #1B1713;
border-radius: 27rpx 27rpx 27rpx 27rpx;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 36rpx;
.val-text {
font-weight: 400;
font-size: 25rpx;
color: #FFFFFF;
display: flex;
align-items: center;
.phone-box {
color: #666666;
margin: 0 10rpx;
}
.type-box {
background: #322511;
border-radius: 0rpx 12rpx 12rpx 12rpx;
color: #FFA200;
font-size: 20rpx;
padding: 10rpx 10rpx;
}
}
.choose-box {
.normol-box {
width: 31rpx;
height: 31rpx;
border: 1px solid #fff;
border-radius: 5rpx;
}
image {
width: 31rpx;
height: 31rpx;
}
}
}
}
.btn-box {
position: fixed;
bottom: 70rpx;
left: 0;
right: 0;
padding: 0 40rpx;
}
</style>

+ 329
- 0
pages_my/user-info.vue View File

@ -0,0 +1,329 @@
<template>
<view>
<view class="head-box"></view>
<uv-navbar autoBack title="个人资料" leftIconColor="#fff" :bgColor="bgColor" height="100rpx" :titleStyle="{color:'#fff'}"></uv-navbar>
<view class="content">
<view class="img-box">
<image src="@/static/image/center/3.png" mode=""></image>
<view>点击更换头像</view>
</view>
<view class="name-box">
<view class="name-val">但愿不过瞻仰</view>
<view class="sex-box">
<image src="@/static/image/center/nan-icon.png" mode=""></image>
</view>
<view class="age-box">36</view>
<!-- <image src="@/static/image/center/nv-icon.png" mode=""></image> -->
</view>
<view class="form-box">
<view class="form-box-line">
<view class="label-box">
<image src="@/static/image/center/user-icon-1.png" mode="widthFix"></image>
<view>国籍</view>
</view>
<view class="value-box">
中国
</view>
</view>
<view class="form-box-line">
<view class="label-box">
<image src="@/static/image/center/user-icon-2.png" mode="widthFix"></image>
<view>学历</view>
</view>
<view class="value-box">
本科
</view>
</view>
<view class="form-box-line">
<view class="label-box">
<image src="@/static/image/center/user-icon-3.png" mode="widthFix"></image>
<view>行业</view>
</view>
<view class="value-box">
暂无
</view>
</view>
<view class="form-box-line">
<view class="label-box">
<image src="@/static/image/center/user-icon-4.png" mode="widthFix"></image>
<view>电话</view>
</view>
<view class="value-box">
123321123
</view>
</view>
<view class="form-box-line">
<view class="label-box">
<image src="@/static/image/center/user-icon-5.png" mode="widthFix"></image>
<view>性别</view>
</view>
<view class="value-box">
</view>
</view>
</view>
<view class="tips-box">
<view class="title-box">标签</view>
<view class="tips-val">
<view class="tips-item tips-1">单身</view>
<view class="tips-item tips-2">985</view>
<view class="tips-item tips-3">设计师</view>
<view class="tips-item tips-4">行业大牛</view>
</view>
</view>
<view class="about-box">
<uv-divider text="关于我" textSize="28rpx"></uv-divider>
<view class="about-box-val">我目前居住在上海是一名工程师在一家互联网公司工作虽然工作很忙但我总能找到时间享受我的爱好旅行和摄影每到假期我就</view>
</view>
</view>
<view class="btn-box">
<uv-button text="编辑信息" @click="editClick" color="#381615" shape="circle" :customStyle="btnCustomStyle"></uv-button>
</view>
</view>
</template>
<script>
export default{
data() {
return {
btnCustomStyle:{
color:'#FF5858'
},
bgColor:'transparent',
info:{
name:'',
phone:'',
idCard:'',
jianli:''
},
}
},
onPageScroll(e) {
if(e.scrollTop > 50) {
this.bgColor = '#49070c'
}else{
this.bgColor = 'transparent'
}
},
methods:{
editClick() {
uni.navigateTo({
url:'/pages_my/user-msg'
})
}
}
}
</script>
<style lang="scss">
page {
background-color: #060504;
}
</style>
<style lang="scss" scoped>
.head-box {
background: url('@/static/image/nav-bg.png') no-repeat;
background-size: 100% 100%;
width: 100%;
height: 534rpx;
position: absolute;
z-index: -1;
}
.content {
padding: 0 30rpx 170rpx;
padding-top: calc(var(--status-bar-height) + 110rpx);
.img-box {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
margin-bottom: 40rpx;
image {
width: 176rpx;
height: 176rpx;
border-radius: 50%;
}
view {
font-weight: 400;
font-size: 24rpx;
color: #CCCCCC;
margin-top: 20rpx;
}
}
.name-box {
display: flex;
align-items: center;
.name-val {
font-weight: 600;
font-size: 32rpx;
color: #E6E6E6;
margin-right: 18rpx;
}
.sex-box {
background-color: #0D1A20;
width: 69rpx;
height: 36rpx;
border-radius: 18rpx;
display: flex;
align-items: center;
justify-content: center;
margin-right: 10rpx;
image {
width: 25rpx;
height: 25rpx;
}
}
.age-box {
width: 85rpx;
height: 36rpx;
background: #261705;
border-radius: 18rpx;
display: flex;
align-items: center;
justify-content: center;
font-weight: 400;
font-size: 23rpx;
color: #FFA200;
}
}
.form-box {
background: #1B1713;
border-radius: 27rpx;
padding:0 40rpx;
margin-top: 25rpx;
margin-bottom: 44rpx;
.form-box-line {
height: 112rpx;
border-bottom: 1px solid #403D3A;
display: flex;
align-items: center;
justify-content: space-between;
&:last-child {
border: none;
}
.label-box {
font-weight: 400;
font-size: 31rpx;
color: #CCCCCC;
display: flex;
align-items: center;
image {
width: 35rpx;
height: 35rpx;
margin-right: 23rpx;
}
}
.value-box {
font-weight: 400;
font-size: 28rpx;
color: #CCCCCC;
}
}
.form-title {
font-weight: 500;
font-size: 28rpx;
color: #CCCCCC;
padding-top: 32rpx;
}
.choose-box {
margin-top: 28rpx;
display: flex;
flex-wrap: wrap;
.choose-item {
width: 137rpx;
height: 67rpx;
border-radius: 13rpx;
border: 1rpx solid #CCCCCC;
text-align: center;
line-height: 67rpx;
font-weight: 500;
font-size: 26rpx;
color: #CCCCCC;
margin-right: 15rpx;
margin-bottom: 24rpx;
&:nth-child(4n){
margin-right: 0;
}
}
.choose-class {
background-color: #341616;
color: #FF4747;
border: 1rpx solid #FF4747;
}
}
}
.title-box {
font-weight: 500;
font-size: 27rpx;
color: #666666;
}
.tips-box {
margin-top: 30rpx;
margin-bottom: 27rpx;
.tips-val {
display: flex;
align-items: center;
margin-top: 27rpx;
.tips-item {
width: 147rpx;
height: 72rpx;
border-radius: 13rpx;
font-weight: 500;
font-size: 28rpx;
line-height: 72rpx;
text-align: center;
margin-right: 20rpx;
margin-bottom: 10rpx;
flex-wrap: wrap;
&:nth-child(4n) {
margin-right: 0;
}
}
.tips-1 {
background-color: #1F1404;
color: #E17E09;
}
.tips-2 {
background-color: #1F0E0D;
color: #FF4747;
}
.tips-3 {
background-color: #051529;
color: #0979E1;
}
.tips-4 {
background-color: #191F0E;
color: #4EB477;
}
}
}
.about-box {
.about-box-val {
margin-top: 36rpx;
background: #171310;
border-radius: 20rpx;
padding: 60rpx 40rpx;
font-weight: 400;
font-size: 28rpx;
color: #CCCCCC;
line-height: 46rpx;
}
}
}
.btn-box {
background-color: #060504;
position: fixed;
bottom: 0;
left: 0;
right: 0;
padding: 20rpx 40rpx;
height: 150rpx;
z-index: 999;
box-sizing: border-box;
}
</style>

+ 228
- 0
pages_my/user-msg.vue View File

@ -0,0 +1,228 @@
<template>
<view>
<view class="head-box"></view>
<uv-navbar autoBack title="编辑资料" leftIconColor="#fff" :bgColor="bgColor" height="100rpx" :titleStyle="{color:'#fff'}"></uv-navbar>
<view class="content">
<view class="title-box">基础信息</view>
<view class="form-box">
<view class="form-box-line">
<view class="label-box">用户名称</view>
<view class="value-box">
<uv-input placeholder="请输入用户名称" inputAlign="right" v-model="info.name" border="none" color="#CCCCCC"></uv-input>
</view>
</view>
<view class="form-box-line">
<view class="label-box">邮箱</view>
<view class="value-box">
<uv-input placeholder="请输入邮箱" inputAlign="right" v-model="nfo.phone" border="none" color="#CCCCCC"></uv-input>
</view>
</view>
<view class="form-box-line">
<view class="label-box">手机号</view>
<view class="value-box">
<uv-input placeholder="请输入手机号" inputAlign="right" v-model="nfo.idCard" border="none" color="#CCCCCC"></uv-input>
</view>
</view>
<view class="form-box-line">
<view class="label-box">性别</view>
<view class="value-box">
<uv-input placeholder="请输入性别" inputAlign="right" v-model="nfo.idCard" border="none" color="#CCCCCC"></uv-input>
</view>
</view>
<view class="form-box-line">
<view class="label-box">国籍</view>
<view class="value-box">
<uv-input placeholder="请输入国籍" inputAlign="right" v-model="nfo.idCard" border="none" color="#CCCCCC"></uv-input>
</view>
</view>
<view class="form-box-line">
<view class="label-box">生日</view>
<view class="value-box">
<uv-input placeholder="请输入生日" inputAlign="right" v-model="nfo.idCard" border="none" color="#CCCCCC"></uv-input>
</view>
</view>
<view class="form-box-line">
<view class="label-box">现居住址</view>
<view class="value-box">
<uv-input placeholder="请输入现居住址" inputAlign="right" v-model="nfo.idCard" border="none" color="#CCCCCC"></uv-input>
</view>
</view>
<view class="form-box-line">
<view class="label-box">个人状态</view>
<view class="value-box">
<uv-input placeholder="请输入个人状态" inputAlign="right" v-model="nfo.idCard" border="none" color="#CCCCCC"></uv-input>
</view>
</view>
</view>
<view class="title-box">教育</view>
<view class="form-box">
<view class="form-title">学历</view>
<view class="choose-box">
<view class="choose-item" :class="xueliIndex == i ? 'choose-class' :''" v-for="(item,i) in xueliList" :key="i" @click="xueliIndex = i">{{item}}</view>
</view>
<view class="form-title">院校</view>
<view class="choose-box">
<view class="choose-item" :class="yuanxiaoIndex == i ? 'choose-class' :''" v-for="(item,i) in yuanxiaoList" :key="i" @click="yuanxiaoIndex = i">{{item}}</view>
</view>
</view>
<view class="title-box">工作</view>
<view class="form-box">
<view class="form-box-line">
<view class="label-box">行业</view>
<view class="value-box">
<uv-input placeholder="请输入行业" inputAlign="right" v-model="info.name" border="none" color="#CCCCCC"></uv-input>
</view>
</view>
</view>
<view class="title-box">关于我</view>
<view class="form-box">
<uv-textarea v-model="info.name" :customStyle="{background: 'transparent',border:'none'}" height="380rpx" placeholder="请输入自我介绍..."></uv-textarea>
</view>
</view>
<view class="btn-box">
<uv-button text="保存" @click="saveClick" color="#381615" shape="circle" :customStyle="btnCustomStyle"></uv-button>
</view>
</view>
</template>
<script>
export default{
data() {
return {
bgColor:'transparent',
btnCustomStyle:{
color:'#FF5858'
},
info:{
name:'',
phone:'',
idCard:'',
jianli:''
},
xueliIndex:0,
yuanxiaoIndex:0,
xueliList:['本科','硕士','博士','其他'],
yuanxiaoList:['985','211','双一流','QS100','QS200','QS600','其他']
}
},
onPageScroll(e) {
if(e.scrollTop > 50) {
this.bgColor = '#49070c'
}else{
this.bgColor = 'transparent'
}
},
methods:{
saveClick() {
uni.showToast({
title:'保存成功',
icon:'none'
})
}
}
}
</script>
<style lang="scss">
page {
background-color: #060504;
}
</style>
<style lang="scss" scoped>
.head-box {
background: url('@/static/image/nav-bg.png') no-repeat;
background-size: 100% 100%;
width: 100%;
height: 534rpx;
position: absolute;
z-index: -1;
}
.content {
padding: 0 30rpx 170rpx;
padding-top: calc(var(--status-bar-height) + 110rpx);
.title-box {
font-weight: 500;
font-size: 27rpx;
color: #666666;
}
.form-box {
background: #1B1713;
border-radius: 27rpx;
padding:0 40rpx;
margin-top: 20rpx;
margin-bottom: 44rpx;
.form-box-line {
height: 112rpx;
border-bottom: 1px solid #403D3A;
display: flex;
align-items: center;
&:last-child {
border: none;
}
.label-box {
font-weight: 500;
font-size: 29rpx;
color: #CCCCCC;
margin-right: 34rpx;
}
.value-box {
display: flex;
align-items: center;
justify-content: space-between;
flex: 1;
.uv-input {
}
}
}
.form-title {
font-weight: 500;
font-size: 28rpx;
color: #CCCCCC;
padding-top: 32rpx;
}
.choose-box {
margin-top: 28rpx;
display: flex;
flex-wrap: wrap;
.choose-item {
width: 137rpx;
height: 67rpx;
border-radius: 13rpx;
border: 1rpx solid #CCCCCC;
text-align: center;
line-height: 67rpx;
font-weight: 500;
font-size: 26rpx;
color: #CCCCCC;
margin-right: 15rpx;
margin-bottom: 24rpx;
&:nth-child(4n){
margin-right: 0;
}
}
.choose-class {
background-color: #341616;
color: #FF4747;
border: 1rpx solid #FF4747;
}
}
}
}
.btn-box {
background-color: #060504;
position: fixed;
bottom: 0;
left: 0;
right: 0;
padding: 20rpx 40rpx;
height: 150rpx;
z-index: 999;
box-sizing: border-box;
}
</style>

+ 3
- 2
pages_my/zlx-qiandao.vue View File

@ -48,7 +48,7 @@
}
},
methods:{
qiandaoClick(item) {
qiandaoClick() {
uni.navigateTo({
url:'/pages_my/qiandao-list'
})
@ -69,9 +69,10 @@
width: 100%;
height: 534rpx;
position: absolute;
z-index: -1;
}
.content {
padding: 0 30rpx;
padding-top: calc(var(--status-bar-height) + 100rpx);
padding-top: calc(var(--status-bar-height) + 110rpx);
}
</style>

+ 413
- 0
pages_order/huodong-detail.vue View File

@ -0,0 +1,413 @@
<template>
<view>
<view class="head-box"></view>
<uv-navbar autoBack title="活动详情" leftIconColor="#fff" :bgColor="bgColor" height="100rpx" :titleStyle="{color:'#fff'}"></uv-navbar>
<view class="content">
<view class="content-head">
<image class="image-box" src="https://cdn.uviewui.com/uview/swiper/swiper3.png" mode=""></image>
<view class="msg-box">
<view class="msg-box-title">泰酷辣-清迈治愈之旅</view>
<view class="msg-box-time">开始时间2024.12.28 10:00</view>
<view class="msg-box-address">
<view class="msg-box-address-text">活动地址黄金海岸草场浴池中心广场</view>
<view class="address-icon">
<image src="@/static/image/home/address-icon-2.png" mode=""></image>
<view>导航</view>
</view>
</view>
<view class="lingdui-box">
<image class="use-img" src="@/static/image/center/3.png" mode=""></image>
<view class="lingdui-msg">
<view class="lingdui-msg-name">
<view>VTrip微程</view>
<view class="name-tip">主理人</view>
</view>
<view>
<uv-rate :count="count" v-model="value" size="23" activeColor="#FFA200"></uv-rate>
</view>
</view>
<view class="add-wx">添加微信</view>
</view>
</view>
</view>
<view class="lv-miaoshu">
<view class="title-box">活动描述</view>
<view class="value-box">
<view class="lv-msg-box">
当金黄的落叶轻柔地铺满了小城的每个角落我们知道最温柔的季节已悄然而至在这个收获的季节里我们诚挚邀请您加入我们的秋日私旅
</view>
</view>
<view class="title-box">注意事项</view>
<view class="value-box">
<view class="lv-msg-box">
当金黄的落叶轻柔地铺满了小城的每个角落我们知道最温柔的季节已悄然而至在这个收获的季节里我们诚挚邀请您加入我们的秋日私旅
</view>
</view>
</view>
</view>
<view class="bottom-box">
<view class="price-box">
<view class="peice-val"><text></text>3000</view>
<view>报名费用</view>
</view>
<view class="caozuo-box">
<view class="caozuo-item border-r">
<image src="@/static/image/home/shoucang-icon.png" mode=""></image>
<view>收藏</view>
</view>
<view class="caozuo-item">
<image src="@/static/image/home/zhuanfa-icon.png" mode=""></image>
<view>转发</view>
</view>
</view>
<view class="btn-box" @click="toBaoming">立即报名</view>
<!-- <view class="btn-box end-btn">已结束</view> -->
</view>
<uv-popup ref="popup" mode="bottom" bgColor="">
<view class="popup-cont">
<view class="popup-title">
<view></view>
<view>选择活动状态</view>
<uv-icon name="close" color="#fff" @click="$refs.popup.close();"></uv-icon>
</view>
<view class="popup-list">
<view class="list-item" v-for="(item,i) in typeList" :key="i" @click="chooseClick(item,i)">
<view class="item-l" :class="chooseIndex == i ? 'chooose-class' : ''">
<view>{{item.name}}</view>
<view class="item-l-val">{{item.price}}</view>
</view>
<uv-icon name="checkmark" color="#FF5858" v-if="chooseIndex == i"></uv-icon>
</view>
</view>
<view class="confirm-box">
<uv-button @click="confirmClick" text="确定" color="#381615" shape="circle" :customStyle="btnCustomStyle"></uv-button>
</view>
</view>
</uv-popup>
</view>
</template>
<script>
export default{
data() {
return {
btnCustomStyle:{
color:'#FF5858'
},
chooseIndex:0,
bgColor:'transparent',
count:5,
value:3,
typeList:[
{
name:'早鸟票',
price:'168'
},
{
name:'单人票',
price:'198'
},
{
name:'尊享票',
price:'268'
}
]
}
},
onPageScroll(e) {
if(e.scrollTop > 50) {
this.bgColor = '#49070c'
}else{
this.bgColor = 'transparent'
}
},
methods:{
toBaoming() {
this.$refs.popup.open();
},
chooseClick(item,i) {
this.chooseIndex = i
},
confirmClick() {
}
}
}
</script>
<style lang="scss">
page {
background-color: #060504;
}
</style>
<style lang="scss" scoped>
.head-box {
background: url('@/static/image/nav-bg.png') no-repeat;
background-size: 100% 100%;
width: 100%;
height: 534rpx;
position: absolute;
z-index: -1;
}
.content {
padding: 0 30rpx 170rpx;
padding-top: calc(var(--status-bar-height) + 110rpx);
.content-head {
position: relative;
.image-box {
width: 100%;
height: 546rpx;
}
.msg-box {
background: #1B1713;
border-radius: 27rpx 27rpx 67rpx 67rpx;
position: absolute;
top: 429rpx;
left: 0;
right: 0;
padding-top: 38rpx;
.msg-box-title {
font-weight: 500;
font-size: 32rpx;
color: #FFFFFF;
margin-bottom: 40rpx;
padding-left: 38rpx;
}
.msg-box-time {
font-weight: 400;
font-size: 27rpx;
color: #999999;
padding-left: 38rpx;
}
.msg-box-address {
font-weight: 400;
font-size: 27rpx;
color: #999999;
padding-left: 38rpx;
padding-right: 30rpx;
margin-top: 24rpx;
display: flex;
justify-content: space-between;
&-text {
flex: 1;
}
.address-icon {
font-weight: 400;
font-size: 23rpx;
color: #999999;
display: flex;
image {
width: 25rpx;
height: 27rpx;
margin-right: 8rpx;
}
}
}
.lingdui-box {
margin-top: 43rpx;
height: 130rpx;
background: #26201A;
border-radius: 60rpx;
display: flex;
align-items: center;
padding: 0 40rpx;
.use-img {
width: 86rpx;
height: 86rpx;
}
.lingdui-msg {
flex: 1;
margin-left: 24rpx;
.lingdui-msg-name {
font-weight: 500;
font-size: 29rpx;
color: #E6E6E6;
display: flex;
align-items: center;
margin-bottom: 11rpx;
.name-tip {
padding: 0 20rpx;
height: 27rpx;
background: #3C2D17;
border-radius: 0rpx 12rpx 12rpx 12rpx;
font-weight: 500;
font-size: 19rpx;
color: #FFA200;
line-height: 27rpx;
margin-left: 14rpx;
}
}
}
.add-wx {
width: 172rpx;
height: 51rpx;
background: #3C2D17;
border-radius: 23rpx 23rpx 23rpx 23rpx;
text-align: center;
line-height: 51rpx;
font-weight: 400;
font-size: 25rpx;
color: #FF8A00;
}
}
}
}
.title-box {
font-weight: 500;
font-size: 33rpx;
color: #E6E6E6;
text-align: center;
position: relative;
&::after {
content: "";
position: absolute;
top: 50%;
left: 0;
transform: translate(0,-50%);
width: 100%;
height: 12rpx;
background: url(@/static/image/home/title-line.png) no-repeat;
background-size: 100% 100%;
}
}
.lv-miaoshu {
margin-top: 300rpx;
.value-box {
background: #1B1713;
border-radius: 27rpx;
margin-top: 35rpx;
margin-bottom: 52rpx;
.tabs-box {
border-bottom: 1px solid #2D241B;
}
.lv-msg-box {
padding: 20rpx 40rpx;
font-weight: 400;
font-size: 27rpx;
color: #E6E6E6;
line-height: 41rpx;
}
}
}
}
.bottom-box {
position: fixed;
bottom: 0;
left: 0;
right: 0;
height: 150rpx;
background-color: #1B1713;
display: flex;
align-items: center;
padding: 0 40rpx;
.price-box {
font-weight: 400;
font-size: 25rpx;
color: #999999;
flex: 1;
.peice-val {
font-weight: 500;
font-size: 40rpx;
color: #FF3535;
margin-bottom: 15rpx;
text {
font-size: 26rpx;
}
}
}
.caozuo-box {
display: flex;
align-items: center;
.caozuo-item {
font-weight: 400;
font-size: 20rpx;
color: #999999;
padding: 0 35rpx;
text-align: center;
image {
width: 48rpx;
height: 48rpx;
margin-bottom: 10rpx;
}
}
.border-r {
position: relative;
// border-right: 1px solid #4A3E32;
&::after {
content: "";
width: 2rpx;
height: 47rpx;
position: absolute;
right: 0;
top: 50%;
transform: translate(0,-50%);
background-color: #4A3E32;
}
}
}
.btn-box {
width: 252rpx;
height: 74rpx;
font-weight: 500;
font-size: 32rpx;
color: #FFFFFF;
text-align: center;
line-height: 74rpx;
background: url(@/static/image/home/hdqd-btn.png) no-repeat;
background-size: 100% 100%;
}
.end-btn {
background: #666666;
border-radius: 37rpx 37rpx 37rpx 37rpx;
}
}
.popup-cont {
width: 95%;
margin: 0 auto;
background-image: linear-gradient(to top, #000000, #331212);
height:662rpx;
border-radius: 33rpx 33rpx 0 0;
.popup-title {
display: flex;
align-items: center;
justify-content: space-between;
padding: 54rpx 52rpx;
font-weight: 500;
font-size: 29rpx;
color: #999999;
}
.popup-list {
padding: 0 50rpx;
.list-item {
display: flex;
justify-content: space-between;
align-items: center;
height: 110rpx;
border-bottom: 1px solid #3F3535;
.item-l {
font-weight: 500;
font-size: 29rpx;
color: #CCCCCC;
display: flex;
align-items: center;
.item-l-val {
margin-left: 40rpx;
}
}
.chooose-class {
color: #FF5858;
}
}
}
.confirm-box {
padding: 0 50rpx;
margin-top: 30rpx;
.confirm-btn-box {
}
}
}
</style>

+ 292
- 0
pages_order/lvyou-detail.vue View File

@ -0,0 +1,292 @@
<template>
<view>
<view class="head-box"></view>
<uv-navbar autoBack title="旅行详情" leftIconColor="#fff" :bgColor="bgColor" height="100rpx" :titleStyle="{color:'#fff'}"></uv-navbar>
<view class="content">
<view class="content-head">
<image class="image-box" src="https://cdn.uviewui.com/uview/swiper/swiper3.png" mode=""></image>
<view class="msg-box">
<view class="msg-box-title">泰酷辣-清迈治愈之旅</view>
<view class="msg-box-time">开始时间2024.12.28 10:00</view>
<view class="lingdui-box">
<image class="use-img" src="@/static/image/center/3.png" mode=""></image>
<view class="lingdui-msg">
<view class="lingdui-msg-name">
<view>VTrip微程</view>
<view class="name-tip">领队</view>
</view>
<view>
<uv-rate :count="count" v-model="value" size="23" activeColor="#FFA200"></uv-rate>
</view>
</view>
<view class="add-wx">添加微信</view>
</view>
</view>
</view>
<view class="lv-miaoshu">
<view class="title-box">旅行描述</view>
<view class="value-box">
<view class="tabs-box">
<uv-tabs :list="list" @click="click" lineColor="#FE5E5E" :activeStyle="{color:'#FE5E5E',fontSize:'29rpx',fontWeight: 'bold'}" :inactiveStyle="{color:'#D6D6D6',fontSize:'29rpx',fontWeight: 'bold'}"></uv-tabs>
</view>
<view class="lv-msg-box">
当金黄的落叶轻柔地铺满了小城的每个角落我们知道最温柔的季节已悄然而至在这个收获的季节里我们诚挚邀请您加入我们的秋日私旅
</view>
</view>
</view>
</view>
<view class="bottom-box">
<view class="price-box">
<view class="peice-val"><text></text>3000</view>
<view>报名费用</view>
</view>
<view class="caozuo-box">
<view class="caozuo-item border-r">
<image src="@/static/image/home/shoucang-icon.png" mode=""></image>
<view>收藏</view>
</view>
<view class="caozuo-item">
<image src="@/static/image/home/zhuanfa-icon.png" mode=""></image>
<view>转发</view>
</view>
</view>
<view class="btn-box">立即报名</view>
</view>
</view>
</template>
<script>
export default{
data() {
return {
bgColor:'transparent',
count:5,
value:3,
list:[
{
name:'介绍'
},
{
name:'路线'
},
{
name:'费用'
},
{
name:'须知'
},
{
name:'代理'
},
]
}
},
onPageScroll(e) {
if(e.scrollTop > 50) {
this.bgColor = '#49070c'
}else{
this.bgColor = 'transparent'
}
},
}
</script>
<style lang="scss">
page {
background-color: #060504;
}
</style>
<style lang="scss" scoped>
.head-box {
background: url('@/static/image/nav-bg.png') no-repeat;
background-size: 100% 100%;
width: 100%;
height: 534rpx;
position: absolute;
z-index: -1;
}
.content {
padding: 0 30rpx 170rpx;
padding-top: calc(var(--status-bar-height) + 110rpx);
.content-head {
position: relative;
.image-box {
width: 100%;
height: 546rpx;
}
.msg-box {
background: #1B1713;
border-radius: 27rpx 27rpx 67rpx 67rpx;
position: absolute;
top: 429rpx;
left: 0;
right: 0;
padding-top: 38rpx;
.msg-box-title {
font-weight: 500;
font-size: 32rpx;
color: #FFFFFF;
margin-bottom: 40rpx;
padding-left: 38rpx;
}
.msg-box-time {
font-weight: 400;
font-size: 27rpx;
color: #999999;
padding-left: 38rpx;
}
.lingdui-box {
margin-top: 43rpx;
height: 130rpx;
background: #26201A;
border-radius: 60rpx;
display: flex;
align-items: center;
padding: 0 40rpx;
.use-img {
width: 86rpx;
height: 86rpx;
}
.lingdui-msg {
flex: 1;
margin-left: 24rpx;
.lingdui-msg-name {
font-weight: 500;
font-size: 29rpx;
color: #E6E6E6;
display: flex;
align-items: center;
margin-bottom: 11rpx;
.name-tip {
padding: 0 20rpx;
height: 27rpx;
background: #3C2D17;
border-radius: 0rpx 12rpx 12rpx 12rpx;
font-weight: 500;
font-size: 19rpx;
color: #FFA200;
line-height: 27rpx;
margin-left: 14rpx;
}
}
}
.add-wx {
width: 172rpx;
height: 51rpx;
background: #3C2D17;
border-radius: 23rpx 23rpx 23rpx 23rpx;
text-align: center;
line-height: 51rpx;
font-weight: 400;
font-size: 25rpx;
color: #FF8A00;
}
}
}
}
.title-box {
font-weight: 500;
font-size: 33rpx;
color: #E6E6E6;
text-align: center;
position: relative;
&::after {
content: "";
position: absolute;
top: 50%;
left: 0;
transform: translate(0,-50%);
width: 100%;
height: 12rpx;
background: url(@/static/image/home/title-line.png) no-repeat;
background-size: 100% 100%;
}
}
.lv-miaoshu {
margin-top: 250rpx;
.value-box {
background: #1B1713;
border-radius: 27rpx;
margin-top: 35rpx;
.tabs-box {
border-bottom: 1px solid #2D241B;
}
.lv-msg-box {
padding: 20rpx 40rpx;
font-weight: 400;
font-size: 27rpx;
color: #E6E6E6;
line-height: 41rpx;
}
}
}
}
.bottom-box {
position: fixed;
bottom: 0;
left: 0;
right: 0;
height: 150rpx;
background-color: #1B1713;
display: flex;
align-items: center;
padding: 0 40rpx;
.price-box {
font-weight: 400;
font-size: 25rpx;
color: #999999;
flex: 1;
.peice-val {
font-weight: 500;
font-size: 40rpx;
color: #FF3535;
margin-bottom: 15rpx;
text {
font-size: 26rpx;
}
}
}
.caozuo-box {
display: flex;
align-items: center;
.caozuo-item {
font-weight: 400;
font-size: 20rpx;
color: #999999;
padding: 0 35rpx;
text-align: center;
image {
width: 48rpx;
height: 48rpx;
margin-bottom: 10rpx;
}
}
.border-r {
position: relative;
// border-right: 1px solid #4A3E32;
&::after {
content: "";
width: 2rpx;
height: 47rpx;
position: absolute;
right: 0;
top: 50%;
transform: translate(0,-50%);
background-color: #4A3E32;
}
}
}
.btn-box {
width: 252rpx;
height: 74rpx;
font-weight: 500;
font-size: 32rpx;
color: #FFFFFF;
text-align: center;
line-height: 74rpx;
background: url(@/static/image/home/hdqd-btn.png) no-repeat;
background-size: 100% 100%;
}
}
</style>

+ 1
- 1
pages_order/orderDetails.vue View File

@ -93,7 +93,7 @@
.content {
padding: 0 35rpx;
color: #fff;
padding-top: calc(var(--status-bar-height) + 100rpx);
padding-top: calc(var(--status-bar-height) + 110rpx);
.baseInfo {
.statusBox {
display: flex;


+ 1
- 1
pages_zlx/zlx-form.vue View File

@ -104,7 +104,7 @@
}
.content {
padding: 0 30rpx;
padding-top: calc(var(--status-bar-height) + 100rpx);
padding-top: calc(var(--status-bar-height) + 110rpx);
.user-box {
display: flex;


BIN
static/image/cart/bgIcon.png View File

Before After
Width: 1031  |  Height: 301  |  Size: 194 KiB Width: 1031  |  Height: 301  |  Size: 45 KiB

BIN
static/image/center/nan-icon.png View File

Before After
Width: 38  |  Height: 38  |  Size: 1.3 KiB

BIN
static/image/center/nv-icon.png View File

Before After
Width: 38  |  Height: 38  |  Size: 1.3 KiB

BIN
static/image/center/user-icon-1.png View File

Before After
Width: 54  |  Height: 54  |  Size: 3.0 KiB

BIN
static/image/center/user-icon-2.png View File

Before After
Width: 56  |  Height: 49  |  Size: 2.0 KiB

BIN
static/image/center/user-icon-3.png View File

Before After
Width: 48  |  Height: 51  |  Size: 1.1 KiB

BIN
static/image/center/user-icon-4.png View File

Before After
Width: 47  |  Height: 53  |  Size: 1.3 KiB

BIN
static/image/center/user-icon-5.png View File

Before After
Width: 52  |  Height: 46  |  Size: 2.2 KiB

BIN
static/image/home/address-icon-2.png View File

Before After
Width: 39  |  Height: 42  |  Size: 2.0 KiB

BIN
static/image/home/shoucang-icon.png View File

Before After
Width: 72  |  Height: 69  |  Size: 3.0 KiB

BIN
static/image/home/title-line.png View File

Before After
Width: 975  |  Height: 19  |  Size: 1.3 KiB

BIN
static/image/home/zhuanfa-icon.png View File

Before After
Width: 66  |  Height: 66  |  Size: 1.5 KiB

BIN
static/image/member/item-img.png View File

Before After
Width: 345  |  Height: 309  |  Size: 227 KiB

+ 2
- 2
uni_modules/uv-navbar/components/uv-navbar/props.js View File

@ -67,12 +67,12 @@ export default {
// 左侧返回图标的大小
leftIconSize: {
type: [String, Number],
default: 20
default: 30
},
// 左侧返回图标的颜色
leftIconColor: {
type: String,
default: '#303133'
default: '#fff'
},
// 点击左侧区域(返回图标),是否自动返回上一页
autoBack: {


Loading…
Cancel
Save