xiaobo 4 months ago
parent
commit
f05d0245e8
30 changed files with 1542 additions and 143 deletions
  1. +6
    -1
      components/active/active-item.vue
  2. +6
    -1
      components/zhaomu/zhaomu-item.vue
  3. +110
    -117
      components/zhaomu/zlx-item.vue
  4. +3
    -3
      manifest.json
  5. +28
    -3
      pages.json
  6. +1
    -1
      pages/index/cart.vue
  7. +12
    -5
      pages/index/center.vue
  8. +13
    -2
      pages/index/index.vue
  9. +1
    -1
      pages/index/member.vue
  10. +93
    -3
      pages_my/qiandao-list.vue
  11. +329
    -0
      pages_my/user-info.vue
  12. +228
    -0
      pages_my/user-msg.vue
  13. +3
    -2
      pages_my/zlx-qiandao.vue
  14. +413
    -0
      pages_order/huodong-detail.vue
  15. +292
    -0
      pages_order/lvyou-detail.vue
  16. +1
    -1
      pages_order/orderDetails.vue
  17. +1
    -1
      pages_zlx/zlx-form.vue
  18. BIN
      static/image/center/nan-icon.png
  19. BIN
      static/image/center/nv-icon.png
  20. BIN
      static/image/center/user-icon-1.png
  21. BIN
      static/image/center/user-icon-2.png
  22. BIN
      static/image/center/user-icon-3.png
  23. BIN
      static/image/center/user-icon-4.png
  24. BIN
      static/image/center/user-icon-5.png
  25. BIN
      static/image/home/address-icon-2.png
  26. BIN
      static/image/home/img-1.png
  27. BIN
      static/image/home/shoucang-icon.png
  28. BIN
      static/image/home/title-line.png
  29. BIN
      static/image/home/zhuanfa-icon.png
  30. +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'
})
}
}
};


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

@ -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'
})
}
}
};


+ 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;
}
}
}


+ 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
- 3
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"
}
@ -86,7 +99,6 @@
{
"path": "zlx-qiandao",
"style": {
"enablePullDownRefresh": true,
"navigationStyle": "custom" ,
"navigationBarTextStyle": "white"
}
@ -94,7 +106,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"
}


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

@ -139,7 +139,7 @@
position: absolute;
width: 100%;
color: #fff;
padding-top: calc(var(--status-bar-height) + 100rpx);
padding-top: calc(var(--status-bar-height) + 110rpx);
}
}
</style>

+ 12
- 5
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>
@ -138,6 +138,12 @@
uni.navigateTo({
url:item.url
})
},
toInfo() {
console.log(123)
uni.navigateTo({
url:'/pages_my/user-info'
})
}
}
}
@ -157,10 +163,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;


+ 1
- 1
pages/index/member.vue View File

@ -96,7 +96,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;


+ 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="@/static/image/home/img-1.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="@/static/image/home/img-1.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
File diff suppressed because it is too large
View File


+ 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/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/img-1.png View File

Before After
Width: 1036  |  Height: 819  |  Size: 1.7 MiB

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

+ 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